web-dev-qa-db-ja.com

xCode 6ベータ7:ストーリーボードは右側と左側に余分なスペースを追加します

ルートViewControllerのビューにサブビューを追加し、自動レイアウト設定leadingSpace、trailingSpace、topSpace、bottomSpaceをゼロにすると、左右に余分なスペースが表示されます(したがって、サブビューのフレームを印刷するとOriginは16になり、サイズが小さくなりますあるべきよりも32)。実際、先頭と末尾のスペースはゼロではないことがわかります...

enter image description here

画像の先頭スペースで見ることができるように-ゼロ、ただしOrigin.x = 16

以前私は自動レイアウトで一生懸命働いていなかったので、私の質問はそれは新しいxCodeのバグか機能ですか?

追伸すべてのフレームと制約が更新されました。

43
Mikhail

iOS 8は、 「コンテンツマージン」 の概念をUIViewに追加します。 WWDC 2014の「ココアタッチの新機能」ビデオ は、約12分30秒から始まるコンテンツマージン(「Adaptive Margins」というタイトルの下)について説明しています。

デフォルトのマージンは、各側で8ポイントです。レイアウト制約の各端は、ビューの実際のエッジではなく、ビューのマージンを基準にすることができます([ファイル]> [すばやく開く]を使用してNSLayoutAttributeの定義に移動し、可能性を確認します)。

あなたの制約は「マージンに相対的」です。 「Add New Constraints」popoverを使用して制約を作成する場合、マージンに相対的かどうかを選択できます。

constraint-popover

デフォルトは常にマージン相対です。制約をマージン相対にしたくない場合は、制約を追加するたびにチェックボックスをオフにする必要があります。

スクリーンショットのクイック編集ポップオーバーでは、制約がマージンに関連するかどうかを変更できません。代わりに、制約をダブルクリックして、完全な属性インスペクターを表示します。そこで、ポップアップメニューを使用して、制約の両端ごとに、マージンが相対的かどうかを選択できます。

constraint-attributes

120
rob mayoff