画像に示されているようにビューを垂直に配置するためにInterface Builderで自動レイアウトを設定する方法:
Top view
はトップ画面のEdgeに固定され、Bottom view
は下画面のEdgeに固定されました。 My view
は、上下のビューの中央に配置する必要があります(したがって、Top view
への距離はBottom view
への距離に等しくなります)
これを行う方法は、表示されるビューの間に2つの非表示の「スペーサー」ビューを配置することです。
スペースを同じ高さにすることはできません。ただし、「スペーサー」ビューを使用して、ビューの間に配置します(周囲のビューとのギャップはゼロです)。
次に、これらのビューの高さを等しくすると、My View
とBottom View
に等しい間隔でTop View
が中央にくるようにビューがプッシュされます。
つまり、このように...
V:|[Top View][spacer1][My View][spacer2(==spacer1)][Bottom View]|
編集-別の方法
これを行う別の方法を考えました。 Top View
とBottom View
の間にギャップのない非表示のコンテナUIView
を使用できます。
次に、My View
をこの非表示ビュー内に配置し、垂直方向に中央に配置します。
(5年後)最も標準的な解決策を見つけました。
UILayoutGuide
は、この種のタスクを解決するために特別に導入されました(iOS 9以降)。
レイアウトガイドを使用して、作成したダミービューを置き換えて、ビュー間のスペースまたはユーザーインターフェイスでのカプセル化を表します- 参照ドキュメント
コードではかなりうまく機能しますが、残念ながらInterface Builderはカスタムレイアウトガイドをサポートしていません。
このビデオでは、インターフェイスビルダーの自動レイアウトと制約の驚くべき概要を説明します。 https://www.youtube.com/watch?v=1j-Frd5snYc