0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AutoLayoutの基礎の基礎の基礎

Posted at

AutoLayoutとは

AutoLayouとは、制約を用いたレイアウト方法です。

制約とは

位置やサイズの決める概念です。

こんなの勉強しなくても、
UIViewクラスのインスタンスプロパティのframeで位置やサイズが決めるられるやん!!
って思ったあなたはこの記事を最後まで読むことが決まりました。
(私もそう思ってました。)

話を戻します。

制約は、__同一の階層にあるビュー__や__親子関係にあるビュー__の関係を定義できます。
(ちなみに、frameはスーパービューの座標における位置を定義できます。)

同一の階層にあるビューの関係を定義できるということは、少ないコードで画面サイズの影響を押さえながらレイアウトすることが可能になります。
(frameを用いても画面サイズの影響を抑えることができます。デバイスに応じて画面サイズを取得してif文で条件分岐してframeを毎回決めるということをすれば.......気の遠くなるお話ですね)

AutoLayoutエンジン

私ちは、viewに対して制約式を与えることになります。
与えた制約式の連立方程式を解くことでレイアウトを決定します。これを行なっているのがAutoLayoutエンジンです。
(名前めっちゃかっこいい)

では具体的に、制約式とはなんなのか?見ていきましょう!

制約式

下の図で、青枠で囲まれているのがViewBlueでオレンジ色のviewがViewOrangeだとしましょう。
viewOrangeのスーパービューがViewBlueです。
制約式は、4種類になります。
1.viewOrange.top=viewBlue.top
2.viewOrange.left=viewBlue.left
3.viewOrange.right=viewBlue.right
4.viewOrange.bottom=0.6 × viewBlue.bottom

制約式を一般化するとy=ax+bになります。
(具体的に、連立方程式を効率的に解くアルゴリズムは、難しくて僕には理解できなかった。)

(AutoLayouでわからないことがあったらこの基本部分に戻ってくると理解できるかも。)

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?