統計情報(30日間)


最新情報をツイート

人気の投稿

iOS6で始まったオートレイアウトのかんどころ

このエントリーをはてなブックマークに追加

今ちょうど四苦八苦しているところでもあり合点のいくことが多かった。
※リンク間違ってました..


10のポイントが挙げられている。以下、引用。
1. Rule of Thumb: At Least Two Constraints in Each Dimension
2. Embrace Intrinsic Size
3. IB Will Never Let You Create Ambiguous Layouts
4. Before You Can Delete An Existing Constraint, You Must Create Another One
5. Don’t Resize Controls Explicitly
6. Avoid Premature Optimization
7. Forget frame
8. Don’t Forget To Disable Autoresizing Masks
9. The Debugger Console Is Your Friend
10. Animate the Constraints, Not the Frame

1〜4 で指摘されているように、X,Yそれぞれの方向で最低2つの制約(Constraints)が必要であることを理解することが Autolayoutを使う上での基本ポイント。もし制約を削除したい場合は、先に3つ以上の制約を追加して置く必要がある。

例えば、次の状態で幅を可変にしたいとする

←−−−→|←−−−−−−−→|
左位置  幅の制約   
の制約         

まず右位置の制約(trailing space)を追加する。
←−−−→|←−−−−−−−→|←−−−→
左位置  幅の制約   右位置
の制約         の制約
この状態では左・右・幅共に固定。

制約が2つ以上になったので幅の制約を削除できる。
←−−−→|←−−−−−−−→|←−−−→
左位置  (可変)   右位置
の制約         の制約
すると幅が可変になる。

Xcodeで制約を加える場合、メニューを使う。

てっきりアイコンとかがあってワンタッチで設定!と思い込みがあったからAutolayoutを使う上で一番最初にこれがつまずいた。これはもっと簡単な方法があるのかしらん。

あと 7と10で「frameを直接触らない、制約を調整しろ」というのが新鮮だった。
7. Forget frame
10. Animate the Constraints, Not the Frame
Autolayout以降はレイアウト調整だけでなくアニメーションの仕方もやり方が変わるということか。

近日発売予定の iOS6本ではAutoLayoutにまるまる1章が割かれている。これは期待。
「Chapter 05 Auto Layout詳解」

Leave a Reply