最近在使用storyBoard构建界面部分,碰到autoResizing做界面适配的,这边简单介绍一下,要注意的是autoResizing是一个相对于父控件布局。
autoResizing介绍
需要将UIView的autoresizeSubviews设为YES,这个属性默认是YES的;那么在其中的子View就会根据其自身的autoresizingMask属性来自动其与superView的位置与大小。
而autoresizingMask的值如下:
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
UIViewAutoresizingNone = 0,
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
UIViewAutoresizingFlexibleWidth = 1 << 1,
UIViewAutoresizingFlexibleRightMargin = 1 << 2,
UIViewAutoresizingFlexibleTopMargin = 1 << 3,
UIViewAutoresizingFlexibleHeight = 1 << 4,
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
在xcode中会看到
需要注意的是与margin相关的四个值在虚线的时候才有用,width和height在实线的时候才有用。
UIViewAutoresizingNone: view的frame不会随superview的改变而改变
UIViewAutoresizingFlexibleLeftMargin: 自动调整view与superview左边的距离保证右边距离不变
UIViewAutoresizingFlexibleWidth: 自动调整view的宽,保证与superView的左右边距不变
UIViewAutoresizingFlexibleRightMargin: 自动调整view与superview右边的距离保证左边距不变
UIViewAutoresizingFlexibleTopMargin: 自动调整view与superview顶部的距离保证底部距离不变
UIViewAutoresizingFlexibleHeight: 自动调整view的高,保证与superView的顶部和底部距离不变
UIViewAutoresizingFlexibleBottomMargin: 自动调整view与superview底部部的距离保证顶部距离不变
未完待续,ios的自动布局还有autoLayout和sizeClass