01.5.Autolayout(自动布局)
适配
- 什么是适配?
- 适应、兼容各种不同的情况
- 移动开发中,适配的常见种类
- 系统适配
- 针对不同版本的操作系统进行适配
- 屏幕适配
- 针对不同大小的屏幕尺寸进行适配
添加约束的规则
在创建约束之后,需要将其添加到作用的view上,在添加时要注意目标view需要遵循以下规则:
- 对于两个同层级view之间的约束关系,添加到它们的父view上
- 对于两个不同层级view之间的约束关系,添加到他们最近的共同父view上
- 对于有层次关系的两个view之间的约束关系,添加到层次较高的父view上
First Item =(<=、>=) Multiplier × Second Item + Constant
这个公式就是约束的精髓,也就是可视化编程 AutoLayout 的精髓。公式中 First Item 的 firstAttribute 属性和 Second Item 的 secondAttribute 属性是可选的,Multiplier 系数和 Constant 常数可以手动输入,所以说我们可以通过编辑约束来随心所欲的修改约束,进而限定控件的位置和大小,实现可视化编程中的各种 AutoLayout 需求。
特殊需求
1、Label 的高度自适应
Label 的高度自适应非常简单。给 Label 加约束时不添加宽高约束也不会报错,因为系统默认 Label 的 numberOfLines = 1,height = 20.5,宽度根据文字长短自适应。但有些时候,我们需要使用 Label 显示一段很长的文本,就需要进行高度自适应:添加约束限定 Label 宽度,在 右侧 Utilities 窗口 —> Attributes 选项卡 —> Label 选项 下将 Lines 设置为0。这样你可以不设置Label的高度,让Lable自适应。
2、ScrollView 的 AutoLayout
基于Autolayout的动画
//在修改了约束之后,只要执行下面代码,就能做动画效果
//现在测试之后 添加了约束的view 失效 只有self.view有效 之后再说
[UIView animateWithDuration:1.0 animations:^{
[添加了约束的view layoutIfNeeded];
}];