在iphone5-iphone5s时代,苹果的尺寸有了新的变化,这时就要考虑到了适配问题。autoresizingMask派上了用场。
在UIView的.h里面,很容易找到下面的枚举:
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
};
那他们都是什么意思呢?
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 //保持和父视图的顶部间距不变,底部做调整
};
细心的读者可能已经注意到了,这是一个可以通过“按位或操作符”组合的枚举,即意味着他可以按照需求进行不同的组合;
eg:
view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
表示view的上下左右和父视图之间保持不变。
另外,如果想使用“停靠模式”,请打开父视图的autoresizesSubviews = YES;(虽然他默认是YES),然后设置子视图的autoresizingMask。
更多的组合,根据自己的需求,进行不同的组合。
才疏学浅,如果我有错误的地方,请告知,我将及时修改,以免误导别人。共同进步。