2013-09-22 7 views
14

iOS7は本当に私を驚かせています。あいまいなレイアウト - 「画像ビューの高さがあいまいです」

これは、テストしたすべてのデバイスで円滑に実行されたiOS6からインポートされたプロジェクトです。 どうか私はストーリーボードに設定した高さの指定を無視して、実行時に312x400のようなものに設定された画像ビューを表示します。

私はautolayoutについていくつかの詳細が不明だと思いますが、何が得られますか? 私が提供した高さはまったく問題ではないのですが、これはXcode4.x/ios6とは何故違うのですか?

Snapshot from Xcode5

答えて

17

heightプロパティがあいまいな画像表示のためのレイアウト。 Autolayoutを使用すると、Interface Builderで画像ビューの高さを使用しません。代わりに、イメージビューで設定された制約を使用します。

画像ビューに高さ制約を作成し、高さを固定したい高さに設定します(固定高さの場合)。高さを拡大するには、イメージビューの上部と下部の制約をイメージビューのスーパービューに作成します。あなたが提供したスクリーンショットについては、イメージビューの上部から上部のレイアウトガイドまで制約を設定することができます。

+0

なぜ私は高さを指定できるダミーボックスがありますか?また、アイテムをIB内に適切に配置し、固定サイズを設定するという制約を単純に生成することはできませんか? – user

+1

これらのフィールドはIB内に存在するため、IB内のビューのみを表示するサイズ(autolayoutが有効な場合)がわかります。 autolayoutが無効で、古いストラットとスプリングシステムが有効になっていると、フィールドは実行時に幅と高さに使用されます。自動レイアウトを有効にすると、固定サイズが必要な場合は制約を作成する必要があります。 – Andrew

0

自動レイアウトを使用している場合、垂直レイアウトと水平レイアウトを満たす制約を設定する必要があります。

この場合、画像ビューに高さと幅の拘束を追加するように見えます。

+0

私はUICollectionViewで同様の問題に直面しています.UICollectionViewCellでデータを設定するために自動レイアウトを使用しています。すべてのことがインターフェイスビルダーで完璧に見えます。アプリケーションを実行した後、私は自分のアプリをデバッグし、UIViewの位置があいまいであることを示します。 –

16

enter image description here

は、プレースホルダとして本来のサイズを設定します。

+0

ありがとうございます!これにより、私のUIControlサブクラスは、明示的に幅の制約を設定することなく混乱することなく簡単にラベルテキストサイズに収まるようにサイズを変更し、警告を取り除くことができました。 –

関連する問題