标签:
根据我浅薄的ios 开发知识,可以用以下两种方式添加NSLayoutContraints:
1. 在ib中拖拽
2. 在code 中添加
一、在ib中拖拽
基本的操作这里就不讲了,说明几点心得
1) 首先要找一个view作为基准,添加其constraints(已自己及top view i hierarchy为参考 ),使之定位。
一般可选择中间,或者边缘的view 作为基准,
然后参照该基准及其他已经定位的view,为其他未定位的view添加constraints。
如有必要,还需寻找其他基准
2) ratio aspect 不仅可以以自己为参考,还可以以其他view做参考
3) 尽量少用magic number
4)如有必要可添加view 用来占位。
思考设置一个宽高相等,宽为superview的1/3,且居中的view ?
二、在code 中添加NSLayoutContraints
在code 中添加NSLayoutContraints可以分为两类:
1)不需要参照其他view
比如设置view 的宽度
NSLayoutConstraint *widthConstraint=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:size.width];
[view1 addConstraints:@[widthConstraint]];
2)需要参照其他view
在增加view之前,两个view 需要在同一个view hierarchy 中(有同一个superview,或者其中一个为另一个的superview),
NSLayoutConstraint *centerXConstraint=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:view2 attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0.0];
[commonsuperview addConstraints:@[centerXConstraint]];
注意,对于使用autolayout 的view,应设置 setTranslatesAutoresizingMaskIntoConstraints:为no,否则constraints可能会有冲突
标签:
原文地址:http://www.cnblogs.com/beddup/p/4614525.html