自動布局之a(chǎn)utoresizingMask使用詳解

iOS有兩大自動布局利器:autoresizing 和 autolayout(autolayout是IOS6以后新增)。autoresizing是UIView的屬性,一直存在,使用也比較簡單,但是沒有autolayout那樣強大。如果你的界面比較簡單,要求的細節(jié)沒有那么高,那么你完全可以使用autoresizing去進行自動布局。以下會針對autoresizing進行討論。

(1)屬性說明

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

注意:在這里說明一下,如果是經(jīng)常使用Storyboard/Xib設(shè)置autoresizing,那么轉(zhuǎn)變使用代碼設(shè)置autoresizing的話,容易出現(xiàn)理解錯誤問題。比如說UIViewAutoresizingFlexibleTopMargin,也許會被誤認為是頂部距離不變,其實是底部距離不變。這個解決辦法也很簡單,只需要把使用代碼和使用Storyboard設(shè)置autoresizing,它們是相反的,只需要這樣去記就可以了。

(2)autoresizing組合使用:

也就是枚舉中的值可以使用|隔開,同時擁有多個值的功能,可以針對不同的場景作不同的變化。例如:

UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin

意思是:view的寬度按照父視圖的寬度比例進行縮放,距離父視圖頂部距離不變。

(3)在xib中設(shè)置。(略)

http://www.cocoachina.com/ios/20141216/10652.html

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

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

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