目次

コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置

目次

iOSアプリケーションでAuto Layoutを利用してコントロールを画面の幅に合わせて表示する手順を紹介します。

手順

Xcodeを起動し、プロジェクトを作成し、Main.storyboardファイルを開き、UIデザイナを表示します。今回は単純化のため Single View Application を作成しています。
コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像1

右下のコントロール一覧から[Text View]をデザイナに配置します。
コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像2

デザイナウィンドウの右下にアイコンが4つ並んでいます。この右から2番目のアイコン[├□┤]をクリックします。
コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像3

下図の[Add New Constraints]ポップアップウィンドウが表示されます。
コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像4

ウィンドウに値を入力します。上部のマージンに"10"、左右のマージンに"5"を入力します。下部のマージンには入力しません。上と左右のテキストボックスと中心の四角をつなぐ線が赤くなっていますが、下のテキストボックスとの線はオレンジ色の点線になっていることに注意してください。下方向の制約は作成しないことを意味しています。
テキストボックスと中心の四角をつなぐ線が赤くなっている場合はクリックしてオレンジ色の点線に変更します。
マージンエリアの下部の[Height]の左側のチェックボックスをクリックしてチェックをつけます。また右側のテキストボックスに160を入力します。設定ができた状態が下図です。

設定ができたらウィンドウ下部の[Add 4 Constraints]ボタンをクリックします。
コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像5

この制約によりTextViewを画面の上端から10の位置、左から5の位置に配置し、右端は画面の右端から-5の位置まで、高さは160のコントロールサイズにします。

コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像6

左側のコントロールのツリービューに制約(Constraints)が追加されます。ルートのノードの[View Controller Scene]の右側の右矢印が黄色のアイコンになっていれば正常です。
コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像7

下方向のマージン制約をつけてしまった場合は、[View Controller Scene]の右側の右矢印が赤になります。赤の場合は制約が足りないか制約が競合しています。
コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像8

制約作成後、デザイナウィンドウの右下の4つのアイコンの一番右のアイコン[├△┤]をクリックします。
コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像9

下図のポップアップウィンドウが表示されます。下から5番目の[Update Frames]メニューをクリックします。
コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像10

制約条件に従って、コントロールが再配置されます。画面の幅いっぱいにリサイズされたことが確認できます。
コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像11

実行結果

プロジェクトを実行します。iPhone 6s Plusのシミュレーターで表示した結果です。TextViewが画面幅に収まっています。
コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像12

いったん実行を停止し、iPhone 4sのシミュレーターで実行します。下図が実行結果です。iPhone 4sの場合でもTextViewが画面幅に収まって表示されていることが確認できます。
コントロールを画面幅のサイズに合わせて表示する - Auto Layout を利用したコントロールの配置:画像13

画面幅に合わせてTextViewを配置できました。

AuthorPortraitAlt
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
作成日: 2016-02-14