autoresizing
- 优点:
- 让横竖屏适配相对简单;
- 让子控件可以跟随父控件的行为自动发生相应的变化。
- 局限性:
- 只能解决子控件跟父控件的相对关系问题;
- 不能解决兄弟控件的相对关系问题。
autolayout
iOS 6.0(Xcode4)开始,iOS7.0开始普遍使用
- 参照
- 约束
- 知识点:
- UILabel:在没有 autolayout 之前,UILabel 的文字内容总是居中显示,导致顶部和底部会有一大片空缺区域;在有了 autolayout 之后,UILabel 的 bounds 默认会自动包住所有的文字内容,顶部和底部不再会有空缺区域。
- 让父控件的高度跟随子控件的内容进行伸缩。
- 基于 autolayout 的动画
- 在修改了约束之后,只要执行下面代码,就能做动画效果
[UIView animateWithDuration:1.5 animations:^{
[添加了约束的view layoutIfNeeded];
}];
- 添加约束的规则:
- 对于两个同层级 view 之间的约束关系,添加到它们的父 view 上;
- 对于两个不同层级 view 之间的约束关系,添加到它们最近的共同父 view 上;
- 对于有层次关系的两个 view 之间的约束关系,添加到层次较高的父 view 上。