自動(dòng)布局之a(chǎn)utoresizingMask

iOS有兩大自動(dòng)布局利器:autoresizingautolayoutautolayout是iOS6以后新增)。autoresizingUIView的屬性,可以用來(lái)做一些簡(jiǎn)單的自動(dòng)布局實(shí)現(xiàn),但是沒(méi)有autolayout那樣強(qiáng)大。如果你的界面比較簡(jiǎn)單,要求的細(xì)節(jié)沒(méi)有那么高,那么你完全可以使用autoresizing去進(jìn)行自動(dòng)布局。

1、autoResizing 介紹

autoresizing是蘋果早期的ui布局適配的解決辦法,iOS6之前完全可以勝任了,因?yàn)樘O果手機(jī)只有3.5寸的屏幕,在加上手機(jī)app很少支持橫屏,所以iOS開(kāi)發(fā)者基本不用怎么適配布局,所有的ui控件只要相對(duì)父控件布局就可以了,沒(méi)錯(cuò)autoresizing就是一個(gè)相對(duì)于父控件的布局解決方法;注意:它只能相對(duì)父控件布局

  • autoResizing在xcode中可以通過(guò)可視化的界面調(diào)整也可以通過(guò)代碼去控制。
  • 在用autoResizing的時(shí)候需要關(guān)閉autoLayoutsizeclass(如果是用xcode6),他們之間是互相沖突的。

2、autoResizing 屬性

UIViewAutoresizing是一個(gè)枚舉類型,可以通過(guò)圖片看到autoResizing通過(guò)可視化能調(diào)整的只有6根線剛好和它的6個(gè)枚舉值對(duì)應(yīng)默認(rèn)是UIViewAutoresizingNone,也就是不做任何處理。

typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
    UIViewAutoresizingNone                 = 0,         // 不會(huì)隨父視圖的改變而改變
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,    // 自動(dòng)調(diào)整view與父視圖左邊距,以保證右邊距不變
    UIViewAutoresizingFlexibleWidth        = 1 << 1,    // 自動(dòng)調(diào)整view的寬度,保證左邊距和右邊距不變
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,    // 自動(dòng)調(diào)整view與父視圖右邊距,以保證左邊距不變
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,    // 自動(dòng)調(diào)整view與父視圖上邊距,以保證下邊距不變
    UIViewAutoresizingFlexibleHeight       = 1 << 4,    // 自動(dòng)調(diào)整view的高度,以保證上邊距和下邊距不變
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5     // 自動(dòng)調(diào)整view與父視圖的下邊距,以保證上邊距不變
};

3、autoResizing 組合情況

// 與父視圖的寬度和高度等比例縮放
[self.webView setAutoresizingMask: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight]

// 與父視圖的頂部的距離保持不變,寬度等比例進(jìn)行縮放
[self.webView setAutoresizingMask: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin]

// 與父視圖的左邊距和下邊距固定,大小不隨父視圖進(jìn)行變化
[self.webView setAutoresizingMask: UIViewAutoresizingFlexibleLeftMargin| UIViewAutoresizingFlexibleTopMargin]

這邊需要注意的是UIViewAutoresizingFlexibleBottomMarginUIViewAutoresizingFlexibleTopMargin,容易把相對(duì)于父視圖的哪個(gè)方向的邊距保持不變搞混

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容