约束布局(Auto Layout)¶
约束一种描述性的布局方式。什么是描述?比如说:这个图片距离这个按钮的右边10像素,距离屏幕上方10像素,图片的大小是80x80等等。
约束可以通过storyboard中,右下角的图标来进行添加。如图:
组合(Embed in Stack): 可以把多个控件合成一个View
对齐(Align):

Leading Edges : 选中的views 左 对齐
Trailing Edges : 选中的views 右 对齐
Top Edges : 选中的views 上 对齐
Bottom Edges : 选中的views 下 对齐
Horizontal Centers : 选中的views 水平方向 中心对齐
Vertical Centers : 选中的views 垂直方向 中心对齐
Baselines : 选中的views基于 基线 对齐
注 : 上面这些需要选中两个或者多个的view的时候,才可以操作
Horizontally in Container : 选中的视图 相对于 父视图 进行 水平方向 对齐
Vertical in Container : 选中的视图 相对于 父视图 进行 垂直方向 对齐
新增(Add New Constrains):

上方的输入框 : 这个输入框时表示当前选中的views或者view距离父视图的上方距离为多少,左右下同理
Width 和 Height : 分别是 宽度和高度 的设置
Constarain to Margins : 是否需要外边距 默认为 8。
Equal Widths 和 Equal Heights : 这两个选项需要选择两个视图。比如选中View1和View2,那么可以分别设置这个两个视图宽度和高度相等
Aspect Ratio : 这个属性是设置选中View的比例。当你点击设置的时候,默认他会设置当前视图的比例。比如你的View高度为40宽度为30。那么你的比例就将设置为3:4.
Align : 同于前面的Align设定
修改(resole auto layout issues) : 用于自动布局问题的解决。就是如果你在布局的时候出现了一些问题。比如,咱们再设置约束之后,出现黄色或者红色的的颜色的时候。就需要使用以下方式修改。红色说明咱们设置的约束有缺失或者有冲突的问题,黄色则说明,约束正确,但是当前View的Frame和约束描述的Frame不一致。

上图中有两大项:
Selected Views : 处理当前选中的View的约束问题
All Views in View Controller : 处理当前ViewController中所有的VIew的约束问题。
各项处理的说明
Update Constraints Constants : 根据当前的控件所在位置更新约束。将控件的约束更新为你控件目前所在的位置。
Add Missing Constraints 添加缺失的约束项,但自动添加的不一定是我们想要的,所以一般不太用。
Reset to Suggested Constaints : 重新设置到建议的约束
Clear Constraints 清除约束,会删除选中的视图的所有的约束。

也可以通过上图来解决约束的问题
update Frames : 根据你的约束让控件刷新位置(即实现刷新的功能)。开发过程中,我们一般是加好约束,让控件去根据约束去刷新下位置,而不是让控件根据目前所在的位置去更新约束。所以在开发过程中,一般使用update Frames,而不是用update constraint constants。