● Autolayout自iOS 6开始引入,因为Xcode 4的不给力,当时并无获得很大推 广布局
● 自iOS 7(Xcode 5)开始,Autolayout的开发效率获得很大的提高spa
● 苹果官方也推荐开发者尽可能使用Autolayout来布局UI界面code
● Autolayout能很轻松地解决屏幕适配的问题 对象
● Autolayout的2个核心概念ip
● 参照
● 约束 ci
**警告 开发
控件的frame不匹配所添加的约束, 好比 好比约束控件的宽度为100, 而控件如今的宽度是110 it
**错误 io
缺少必要的约束, 好比 class
只约束了宽度和高度, 没有约束具体的位置
两个约束冲突, 好比
1个约束控件的宽度为100, 1个约束控件的宽度为110
● 代码实现Autolayout的注意点
● 要先禁止autoresizing功能,设置view的下面属性为NO
view.translatesAutoresizingMaskIntoConstraints = NO; ● 添加约束以前,必定要保证相关控件都已经在各自的父控件上
● 不用再给view设置frame
+(id)constraintWithItem:(id)view1 attribute: (NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2 attribute:(NSLayoutAttribute)attr2 multiplier: (CGFloat)multiplier constant:(CGFloat)c;
● view1 :要约束的控件
● attr1 :约束的类型(作怎样的约束) ● relation :与参照控件之间的关系
● view2 :参照的控件
● attr2 :约束的类型(作怎样的约束) ● multiplier :乘数
● c :常量
● 自动布局有个核心公式
obj1.property1 =(obj2.property2 * multiplier)+ constant value