一.说明
先看UIView中的UIViewAutoresizing的枚举说明:
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
};
UIViewAutoresizingNone = 0,
说明:不跟随父视图的调整而变化大小。
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
说明:父视图调整放大或缩小时,始终与左边距保持不变。
UIViewAutoresizingFlexibleWidth = 1 << 1,
说明:跟随父视图的调整而进行长度的自适应。
UIViewAutoresizingFlexibleRightMargin = 1 << 2,
说明:父视图调整放大或缩小时,始终与右边距保持不变。
UIViewAutoresizingFlexibleTopMargin = 1 << 3,
说明:父视图调整放大或缩小时,始终与上边距保持不变。
UIViewAutoresizingFlexibleHeight =1 <<4,
说明:跟随父视图的调整而进行高度的自适应。
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
说明:父视图调整放大或缩小时,始终与下边距保持不变。二.使用
v2.autoresizingMask = UIViewAutoresizingFlexibleWidth;
v3.autoresizingMask = UIViewAutoresizingFlexibleTopMargin |
UIViewAutoresizingFlexibleLeftMargin;
上例中,v2视图的长度自适应,根据父视图的放大或缩小而改变子视图的长度尺寸。
父视图变化时,v3视图的上边距和左边距始终保持不变。