20465


画像のように、ImageViewの下部に灰色のViewの上部を合わせたいです。どのように指定すれば良いでしょうか？

[![画像の説明をここに入力](https://i.stack.imgur.com/NTPD5.png)](https://i.stack.imgur.com/NTPD5.png)

（回答者補筆）  
ImageViewの高さは固定、灰色のViewの高さは、フレキシブル（画面の大きさによって可変）です。


CC BY-SA 3.0
2015-12-29T12:19:47.887
20452
2015-12-30T03:31:53.763
2015-12-30T03:07:30.957
7362
10958
question
ios swift objective-c xcode autolayout
AutoLayoutでViewの下部とViewの上部を合わせる方法


AutoLayoutの基本は、Constraint（制約）をViewに加えるという操作です。Constraintは、Viewの位置と大きさが、一意に決まるように設定します。不足しても、多すぎてもXcodeから警告が出ます。  
もっとも頻度の高いConstraintは、このケースでしょう。

[![画像の説明をここに入力](https://i.stack.imgur.com/zrWOE.png)](https://i.stack.imgur.com/zrWOE.png)

①左（あるいは右）方向のオブジェクトに対する間隔。②上（あるいは下）方向のオブジェクトに対する間隔。③Viewの幅。④Viewの高さ。  
4つのConstraintを、Storyboard上で、このように指定します。

[![画像の説明をここに入力](https://i.stack.imgur.com/4flsJ.png)](https://i.stack.imgur.com/4flsJ.png)

マウスクリックで、破線を実線に変えたり、チェックを入れて、最後に「Add 4 Constraints」ボタンを押します。

ViewのConstraintは、いちばん近くにあるオブジェクトに対するものになります。Viewの左側に別のViewが存在すれば、左側のConstraintは、そのViewとの間隔になります。左側に別のViewがなければ、親Viewの左エッジが、Constraintの対象のオブジェクトとなります。

次に、Viewの横幅が、他のオブジェクトとの関係によって、フレキシブルに変化するConstraintを考えます。

[![画像の説明をここに入力](https://i.stack.imgur.com/e6NuP.png)](https://i.stack.imgur.com/e6NuP.png)

Viewの横幅は、親Viewの横幅が変化すると、一緒に変化します。  
これは、このように設定します。

[![画像の説明をここに入力](https://i.stack.imgur.com/RL07O.png)](https://i.stack.imgur.com/RL07O.png)

Widthのチェックを外して、代わりに右側の破線をクリックして、実線に変えます。  
幅も高さも、他のオブジェクトに対してフレキシブルにするのは、先の応用です。

[![画像の説明をここに入力](https://i.stack.imgur.com/KeTvl.png)](https://i.stack.imgur.com/KeTvl.png)

Width、Height両方のチェックを外して、四囲すべて実線にします。

[![画像の説明をここに入力](https://i.stack.imgur.com/9ypzL.png)](https://i.stack.imgur.com/9ypzL.png)


CC BY-SA 3.0
2015-12-30T03:31:53.763
20465
2015-12-30T03:31:53.763
7362
20452
answer