この記事はXcode 4.6.3 & iOS 6のものです。Xcode 5 & iOS 7はこちら。

http://blogios.stack3.net/archives/1593

前回の続き。今回はSuperview全体を覆うSubview配置について説明。

サンプル: https://github.com/stack3/STLayoutViewSample

サンプルのMenu画面からAuto LayoutのFillを選択します。

f:id:eimei23:20130105130922p:plain

f:id:eimei23:20130105130930p:plain

Superview全体をButtonが覆っています。

ButtonのSize InspectorからConstraintを見てみましょう。

f:id:eimei23:20130105130938p:plain

  • Leading Space to: Superview – Superview左端との間隔を0pxで固定
  • Top Space to: Superview – Superview上端との間隔を0pxで固定
  • Trailing Space to: Superview – Superview右端との間隔を0pxで固定
  • Bottom Space to: Superview – Superview下端との間隔を0pxで固定

それぞれの間隔0pxに固定することで画面回転してもSuperview全体を覆うようになっています。AutoresizingMaskだとFlexibleWidth、FlexibleHeightで幅と高さを伸縮するように指定しますが、AutoLayoutではその概念を忘れる必要があります。

さて実際に自分で配置してみましょう。まずはButtonを削除します。

f:id:eimei23:20130105130947p:plain

Buttonを配置してSuperviewを覆うように配置。位置調整やサイズしているピタっとSuperviewに合うように補完されるので簡単だと思います。

f:id:eimei23:20130105130955p:plain

f:id:eimei23:20130105131003p:plain

Constraintを確認。すでに目的のConstraintが設定されていますね。

f:id:eimei23:20130105131010p:plain

これで終わりです。画面を覆うSubview配置は簡単です。

この程度ならxibファイルを用意する必要はないかもしれません。プログラムからSubview#frameをSuperview#boundsにして、Subview#autoresizeingMaskにFlexibleWidth、FlexibleHeightを設定してもいけますから。好みで使い分けて構わないと思います。

次回はAutoLayoutについてのまとめです。

その8へつづく