LoginSignup
3
2

More than 5 years have passed since last update.

新卒エンジニアがつまずいたAutoLayoutの基礎

Posted at

はじめに

4月に新卒で入社してから8ヶ月が経ち、
研修や案件で一番苦労したStoryBoard上でのAutoLayoutについて、
備忘録として基礎の部分を記載します。

AutoLayoutとは

AutoLayoutとはiPhoneやiPadの様々な異なる画面サイズに対して、パーツをいい感じに配置するための仕組みです。
StoryBoard上でパーツを配置する場合は、他のパーツの上部と揃えたり、y軸から○○pxの位置に配置したりなどの制約(Constrain)をつけることでパーツの配置を行います。

ちなみに・・・

制約は自動でも設定できます。
しかし、自動で制約をつけてしまうといらない制約だったり、レイアウトが崩れたりします。
私は研修中ずっと自動で制約をつけていたため苦労しました。。。
自動で設定するやり方はおすすめできないためここでは割愛します。

制約の方法

StoryBoard上で制約を行う場合、StoryBoardの右下にある5つのアイコンをいじることで大体は制約をかけることができます。
この中でも右の3つのアイコンはよく使うものだと思います。
スクリーンショット 2018-12-19 16.51.33.png

Viewに対して制約をかける場合、
・X軸
・Y軸
・Width
・Hight
をを使い制約をかけていきます。

制約の掛け方①

制約を掛ける方法として1番馴染みやすい方法がSpacing to nearest neighbor だと思います。
この制約はStoryBoardの右下のアイコンの右から2つ目のアイコンから設定できます。
この方法は空白に値を入力して適応させるだけの方法です。

スクリーンショット 2018-12-20 10.37.32.png

名前 内容
Spacing to nearest neighbor 隣接アイテムとの距離(余白)
Width
Height 高さ  
Equal Widths 固定幅
Equal Height 固定の高さ
Aspect Ratio アスペクト比

Aspect RatioはWidthかHeightのどちらかの制約が決まっていればそれに合わせて入力された比率でレイアウトしてくれます。

制約の掛け方②

2つ目の制約の掛け方は先ほどのStoryBoradの右下のアイコンの右から3つ目のアイコンをクリックすると出てくるAlignment Constrainsについて紹介します。
この制約は他のアイテムとの兼ね合いによって制約が決まる方法です。
スクリーンショット 2018-12-20 11.33.54.png

名前 内容
Leading Edges アイテムの左端から他のアイテムの左端までの水平距離
Trailing Edges アイテムの右端から他のアイテムの右端までの水平距離
Top Edges アイテムの上端から他のアイテムの上端までの垂直距離  
Bottom Edges アイテムの下端から他のアイテムの下端までの垂直距離
Horizontal Centers アイテムの中心から他のアイテムの中心までの水平距離
Vertical Centers アイテムの中心から他のアイテムの中心までの垂直距離
First Baselines ベースラインから他の部品のベースラインまでの垂直距離

上記の制約は他のアイテムとの兼ね合いによって制約が決まるなので複数のアイテムを選択した時に設定ができる制約です。

名前 内容
Horizontally in Container 中央からの水平距離
Vertically in Container 中央からの垂直距離

今回はAutoLayoutで主に使用する制約の説明のみでした。
機会があれば、他の記事で詳しく画面を作成して説明したいと思います。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2