Autolayout是一种“自动布局”技术,专门用来布局UI界面的
Autolayout自iOS 6开始引入,由于Xcode 4的不给力,当时并没有得到很大推广
自iOS 7(Xcode 5)开始,Autolayout的开发效率得到很大的提升
苹果官方也推荐开发者尽量使用Autolayout来布局UI界面
Autolayout能很轻松地解决屏幕适配的问题

 

Autoresizing

在Autolayout之前,有Autoresizing可以作屏幕适配,但局限性较大,有些任务根本无法完成(Autoresizing只能设置自身和父控件之间的关系)
Autoresizing仅仅能解决子控件和父控件之间的相对关系问题
相比之下,Autolayout的功能比Autoresizing强大很多
Autolayout解决任何控件之间的相对关系问题

Autolayout的2个核心概念

约束:通过给控件添加约束,来决定控件的位置和尺寸
参照:在添加约束时,是依照谁来添加(可以是父控件或者兄弟控件)

 

Autolayout的警告和错误

警告
控件的frame不匹配所添加的约束, 比如
比如约束控件的宽度为100, 而控件现在的宽度是110

错误
缺乏必要的约束, 比如
只约束了宽度和高度, 没有约束具体的位置

两个约束冲突, 比如
1个约束控件的宽度为100, 1个约束控件的宽度为110