IOS中的两大自动布局利器:Autoresizing和Autolayout。
autoresizing是UIView的属性,一直都有,使用简单,但是没有autolayout强大。autolayout是IOS6以后的新技术,更加强大。一般默认Autoresizing都是打开的状态。
想要单独使用autoresizing 首先得将storybord中的useoutlayout选项按钮关闭,才能在视图进行以下操作。
Autoresizing特性
当UIView的autoresizesSubviews是YES时,(默认是YES), 那么在其中的子view会根据它自身的autoresizingMask属性来自动适应其与superView之间的位置和大小。
autoresizingMask是一个枚举类型, 默认是UIViewAutoresizingNone, 也就是不会autoresize:
其实如何理解这几个值很简单,那就是从xib里面看。 我们在一个xib文件中,取消勾选autolayout,(默认使用autolayout时,autoresizing看不到)。那么我们可以在布局那一栏看到如何设置autoresizing.
这些项分别代表:
UIViewAutoresizingNone view的frame不会随superview的改变而改变
UIViewAutoresizingFlexibleLeftMargin 自动调整view与superview左边的距离保证右边距离不变
UIViewAutoresizingFlexibleWidth 自动调整view的宽,保证与superView的左右边距不变
UIViewAutoresizingFlexibleRightMargin 自动调整view与superview右边的距离保证左边距不变
UIViewAutoresizingFlexibleTopMargin 自动调整view与superview顶部的距离保证底部距离不变
UIViewAutoresizingFlexibleHeight 自动调整view的高,保证与superView的顶部和底部距离不变
UIViewAutoresizingFlexibleBottomMargin 自动调整view与superview底部部的距离保证顶部距离不变
以上这些都较易理解, 但是autoresizing还有一些组合场景。那就是组合使用的场景。