我們?cè)谑褂肁utoResizing進(jìn)行布局的時(shí)候,其主要思想就是設(shè)置子視圖跟隨父視圖的frame變化而變化。具體的情況,我們可以設(shè)置左跟隨,右跟隨等等。下面是AutoResizing在代碼中的使用。
//父視圖
UIView *superView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
superView.backgroundColor = [UIColor orangeColor];
[self.view addSubview:superView];
//子視圖
UIView *subView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
subView.backgroundColor = [UIColor purpleColor];
[superView addSubview:subView];
//設(shè)置子視圖的寬度隨著父視圖變化
subView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
//修改父視圖的frame
superView.frame = CGRectMake(0, 0,200 , 200);
以上代碼中我們?cè)O(shè)置了子視圖的寬度隨父視圖的變化而改變,其效果圖如下:

1244124-7ca6662909656fa0.png
我們可以看到,圖中的子視圖的寬度也隨著父視圖的寬度增加到了二倍。這就是AutoResizing的一個(gè)最簡(jiǎn)單的應(yīng)用。在我們?cè)趯?shí)際使用時(shí),還有很多的相關(guān)屬性可以設(shè)置。有關(guān)AutoResizing可設(shè)置的布局屬性如下:
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
};