码迷,mamicode.com
首页 > 其他好文 > 详细

Autolayout

时间:2015-07-01 21:50:22      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:

根据我浅薄的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可能会有冲突

Autolayout

标签:

原文地址:http://www.cnblogs.com/beddup/p/4614525.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!