iOS6 之后,苹果公司引进了Auto Layout,相比之前的autoresizing功能更强大,这也是苹果公司为了未来不同机型未雨绸缪的措施。
这里要注意几点:
对子视图的约束,若是基于父视图,要通过父视图去添加约束。
对子视图进行自动布局调整,首先对UIView的一个属性设置,这是因为如果我们用Interface Builder,勾选Ues Autolayout,这时autoresizingMask就会被Auto Layout 取代,在手写代码时,我们就需要手动控制,代码如下
[_shadow setTranslatesAutoresizingMaskIntoConstraints:NO]
- 在添加约束前,要先将子视图添加到父视图上。
以下为例,oneImgView 上添加子视图shadow,对shadow进行约束
@property (nonatomic, strong) UIImageView *shadow;
@property (nonatomic, strong) UIImageView *oneImgView;
[_shadow setTranslatesAutoresizingMaskIntoConstraints:NO]; // 使用自动布局
[self.oneImgView addSubview:_shadow]; // 添加约束前要先将子视图添加到父视图上
NSLayoutConstraint *constraint = [NSLayoutConstraint
constraintWithItem:_shadow
attribute:NSLayoutAttributeWidth