iOS有兩大自動布局利器:autoresizing
和autolayout
(autolayout
是iOS6以后新增)黍特。autoresizing
是UIView
的屬性,可以用來做一些簡單的自動布局實現(xiàn)橱野,但是沒有autolayout
那樣強大蒜茴。如果你的界面比較簡單,要求的細節(jié)沒有那么高牌柄,那么你完全可以使用autoresizing
去進行自動布局多搀。
1歧蕉、autoResizing 介紹
autoresizing
是蘋果早期的ui布局適配的解決辦法,iOS6之前完全可以勝任了康铭,因為蘋果手機只有3.5寸的屏幕惯退,在加上手機app很少支持橫屏,所以iOS開發(fā)者基本不用怎么適配布局从藤,所有的ui控件只要相對父控件布局就可以了催跪,沒錯autoresizing
就是一個相對于父控件的布局解決方法锁蠕;注意:它只能相對父控件布局
;
-
autoResizing
在xcode中可以通過可視化的界面調整也可以通過代碼去控制懊蒸。 - 在用
autoResizing
的時候需要關閉autoLayout
和sizeclass
(如果是用xcode6)荣倾,他們之間是互相沖突的。
2骑丸、autoResizing 屬性
UIViewAutoresizing
是一個枚舉類型舌仍,可以通過圖片看到autoResizing
通過可視化能調整的只有6根線剛好和它的6個枚舉值對應默認是UIViewAutoresizingNone
,也就是不做任何處理通危。
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
UIViewAutoresizingNone = 0, // 不會隨父視圖的改變而改變
UIViewAutoresizingFlexibleLeftMargin = 1 << 0, // 自動調整view與父視圖左邊距铸豁,以保證右邊距不變
UIViewAutoresizingFlexibleWidth = 1 << 1, // 自動調整view的寬度,保證左邊距和右邊距不變
UIViewAutoresizingFlexibleRightMargin = 1 << 2, // 自動調整view與父視圖右邊距黄鳍,以保證左邊距不變
UIViewAutoresizingFlexibleTopMargin = 1 << 3, // 自動調整view與父視圖上邊距推姻,以保證下邊距不變
UIViewAutoresizingFlexibleHeight = 1 << 4, // 自動調整view的高度,以保證上邊距和下邊距不變
UIViewAutoresizingFlexibleBottomMargin = 1 << 5 // 自動調整view與父視圖的下邊距框沟,以保證上邊距不變
};
3、autoResizing 組合情況
// 與父視圖的寬度和高度等比例縮放
[self.webView setAutoresizingMask: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight]
// 與父視圖的頂部的距離保持不變增炭,寬度等比例進行縮放
[self.webView setAutoresizingMask: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin]
// 與父視圖的左邊距和下邊距固定忍燥,大小不隨父視圖進行變化
[self.webView setAutoresizingMask: UIViewAutoresizingFlexibleLeftMargin| UIViewAutoresizingFlexibleTopMargin]
這邊需要注意的是UIViewAutoresizingFlexibleBottomMargin
和 UIViewAutoresizingFlexibleTopMargin
,容易把相對于父視圖的哪個方向的邊距保持不變搞混