web-dev-qa-db-ja.com

ストーリーボードの自動レイアウト:「コンテナへのトレーリングスペース」と「ボトムスペースからボトムレイアウト」

Interface Builderの自動レイアウトにおける「トレーリングスペースからコンテナ」と「ボトムスペースからボトムレイアウト」の違いを誰かが理解するのを手伝ってくれませんか?

Interface Builder Auto Layout Constraints

ビューの下部をそのスーパービューの下部に結び付けるレイアウト制約を設定したいと思います。上記の両方は、これを達成する必要があるように聞こえます。

どんな説明でも大歓迎です。

16
bbrame

先頭/末尾は水平方向の間隔です。 (右から左に記述する言語と交換されるため、「左」と「右」のラベルは付いていません。)上/下はまさにその通りです。

「コンテナへ」と「レイアウトガイドへ」の定義は異なりますが、実際には同じように機能します。 「コンテナへ」制約は、UI要素とそのスーパービューのエッジ(または他のUI要素を含む)の間のスペースを制御します。 「ToLayoutGuide」制約は、垂直方向の間隔の特殊なケースです。ビューはiOS 7の透明なナビゲーション/ステータス/タブバーの下に拡張されるため、通常、UI要素がエッジのエッジではなく相対的に表示される場所を制御する必要があります。見る。

そう...

ビューの下部をそのスーパービューの下部に結び付けるレイアウト制約を設定したいと思います。

「下部スペースから下部レイアウトガイド」は、そのために必要なものです。これにより、タブバーがない場合はスーパービューの下部を基準にして、タブバーが存在する場合はタブバーを基準にして間隔が設定されます。

22
rickster

「マージンに対して相対的」のチェックを外すことを忘れないでください enter image description here

6
Artem Zaytsev

トレーリングスペース

現在のビューの右端から次の/隣接するビューまたはスーパービューまでのスペース

リーディングスペース

隣接するビューまたはスーパービューから現在のビューの左端までのスペース

同様に、TopとBottomは上部と下部のスペースに対応します。

6
Irfanlone

すでに受け入れられている答えに加えて、ビューコントローラのビューを別のビューに置き換える場合、レイアウトガイドへの制約が実際には使用されていないことにも注意してください。これについての正確な詳細は調べていませんが、レイアウトガイドは、ストーリーボードからViewControllerが読み込まれているときにのみ使用できるためだと思います。

このため、レイアウトをコンテナに使用することをお勧めしますが、これは、ViewControllerのビューを交換する場合に限ります。

ストーリーボードを使用してアプリの空の状態を作成したいときに、これに遭遇しました。

例:

-(void)viewDidLoad{ UIView* replacementView = //view loaded from storyboard self.view = replacementView //Layout guide margins will not be followed in replacement view }

0
Matt M