- 对于两个同层级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
Width Constraint
Connection to Superview
Vertical Layout
Flush Views
Priority
Equal Widths
Multiple Predicates
A Complete Line of Layout
[button]-[textField] //标准间隔,两个view之间只用"-",没有数字的时候就是标准间隔
![../Art/standardSpace.png](https://i-blog.csdnimg.cn/blog_migrate/f59cffd01b01b252da9abb18e08d2c87.png)
[button(>=50)] //宽度约束,约束view的宽度的最小值为50
![../Art/widthConstraint.png](https://i-blog.csdnimg.cn/blog_migrate/7343f694ca2a9417cfa3a18c809c48c5.png)
|-50-[purpleBox]-50-| //与父视图间隔,到父视图的左右都为50的间距
![../Art/connectionToSuperview.png](https://i-blog.csdnimg.cn/blog_migrate/0664de9c259f579e38bff314f2d6a034.png)
V:[topField]-10-[bottomField] //两个view的垂直间隔,间距为10
![../Art/verticalLayout.png](https://i-blog.csdnimg.cn/blog_migrate/bf5810fdee669bdda78f9523a804cf00.png)
[maroonView][blueView] //两个view之间无间隔
![../Art/flushViews.png](https://i-blog.csdnimg.cn/blog_migrate/980891b990a9e4fd262026fed0c40212.png)
[button(100@20)] //优先级,表示设置宽度为100,优先级为20
![../Art/priority.png](https://i-blog.csdnimg.cn/blog_migrate/6b02364c3ceaac46f9ebfa6170c71d33.png)
[button1(==button2)] //等宽
![../Art/equalWidths.png](https://i-blog.csdnimg.cn/blog_migrate/736466c3763ff5841ad940ef6666d8c6.png)
[flexibleButton(>=70,<=100)] //宽度范围限制, 大于等于70, 小于等于100
![../Art/multiplePredicates.png](https://i-blog.csdnimg.cn/blog_migrate/97a431d7fc544090bbe6059e8a9e0887.png)
|-[find]-[findNext]-[findField(>=20)]-| //多视图排列
![../Art/completeLayout.png](https://i-blog.csdnimg.cn/blog_migrate/ffd3fae201da5a1baa61d7a969ba2511.png)