概念:
iOS6中新加入了一个类:NSLayoutConstraint,一个形如这样的约束
- item1.attribute = multiplier ⨉ item2.attribute + constant
对应的代码为
[NSLayoutConstraint constraintWithItem:button
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:superview
attribute:NSLayoutAttributeBottom
multiplier:1.0
constant:-10]
这对应的约束是“button的底部(y) = superview的底部 -10”。
函数解析:
1.添加约束函数:
- (void)addConstraint:(NSLayoutConstraint *)constraint; //用来将约束添加到view。
添加时需要遵循以下几条规则:
(1).对于两个同层级view之间的约束关系,添加到他们的父view上
(2).对于两个不同层级view之间的约束关系,添加到他们最近的共同父view上
(3).对于有层次关系的两个view之间的约束关系,添加到层次较高的父view上
2.添加多个约束的函数:
- (void)addConstraints:(NSArray *)constraints
3.移除一个约束的函数:
- (void)removeConstraint:(NSLayoutConstraint *)constraintNS_AVAILABLE_IOS(6_0);
4.移除多个约束的函数:
- (void)removeConstraints:(NSArray *)constraints
5.在必要时更新约束函数
- (void)updateConstraintsIfNeeded NS_AVAILABLE_IOS(6_0);
6.更新约束函数
- (void)updateConstraints NS_AVAILABLE_IOS(6_0);
7.判断是否需要更新约束
- (BOOL)needsUpdateConstraints NS_AVAILABLE_IOS(6_0);
8.设置需要更新约束
- (void)setNeedsUpdateConstraints NS_AVAILABLE_IOS(6_0);