iOS有兩大自動布局利器:autoresizing 和 autolayout(autolayout是IOS6以后新增)恭垦。autoresizing是UIView的屬性邻吭,一直存在晤斩,使用也比較簡單焕檬,但是沒有autolayout那樣強大。如果你的界面比較簡單澳泵,要求的細(xì)節(jié)沒有那么高实愚,那么你完全可以使用autoresizing去進(jìn)行自動布局。以下會針對autoresizing進(jìn)行討論兔辅。
(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铲敛,也許會被誤認(rèn)為是頂部距離不變,其實是底部距離不變会钝。這個解決辦法也很簡單伐蒋,只需要把使用代碼和使用Storyboard設(shè)置autoresizing,它們是相反的迁酸,只需要這樣去記就可以了先鱼。
(2)autoresizing組合使用:
也就是枚舉中的值可以使用|隔開,同時擁有多個值的功能胁出,可以針對不同的場景作不同的變化型型。例如:
UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin
意思是:view的寬度按照父視圖的寬度比例進(jìn)行縮放,距離父視圖頂部距離不變全蝶。
(3)在xib中設(shè)置闹蒜。(略)