- 對于兩個同層級View之間的限制關系,添加到他們的父View上。
- 對于兩個不同層級View之間的限制關系,添加到他們最近的共同的父View上
- 對于有層次關系的兩個View之間的限制關系,添加到層次較高的父View上
編碼建立限制的幾種方法: 1.建立簡單的限制,一般作用于單一的對象,或者對象之間的間距 + (NSArray *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views; 2.建立類似于view1.attr1 = view2.attr2 * multiplier + constant這樣的限制 +(id)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2 attribute:(NSLayoutAttribute)attr2 multiplier:(CGFloat)multiplier constant:(CGFloat)c;
官方文檔的例子: Standard Space
[button]-[textField] //标準間隔,兩個view之間隻用"-",沒有數字的時候就是标準間隔
Width Constraint
[button(>=50)] //寬度限制,限制view的寬度的最小值為50
Connection to Superview
|-50-[purpleBox]-50-| //與父視圖間隔,到父視圖的左右都為50的間距
Vertical Layout
V:[topField]-10-[bottomField] //兩個view的垂直間隔,間距為10
Flush Views
[maroonView][blueView] //兩個view之間無間隔
Priority
[button([email protected])] //優先級,表示設定寬度為100,優先級為20
Equal Widths
[button1(==button2)] //等寬
Multiple Predicates
[flexibleButton(>=70,<=100)] //寬度範圍限制, 大于等于70, 小于等于100
A Complete Line of Layout
|-[find]-[findNext]-[findField(>=20)]-| //多視圖排列