iOS 6 編程 - 自動布局(Auto Layout)系列文章


iOS 6 在應用程序用戶界面開發中,引入了自動布局(Auto Layout)概念。自動布局使用約束(Constraint)在用戶界面描述各類視圖的位置、行為和關系。

在Xcode 4.5中,我們可以使用Interface Builder,或者可視化格式語言(Visual Format Language),或者標准的SDK API調用(NSLayoutConstraint類)等等三種方式來創建約束(Constraint)。

Auto Layout用這些Constraints 來對所有的視圖進行一些計算,設置視圖的位置和尺寸。不再需要設置視圖的frame屬性,也就是完全基於針對視圖或元素所設置的Constraints來布局界面的視圖元素。

使用Xcode 4.5 創建App時,Auto Layout功能在所有nib或Storyboard 文件中,默認是enable(開啟的)。具體設置的地方,可以查看之前的文章

在iOS 6 引入自動布局之前,我們使用springs and struts模式來設計可旋轉和調整大小的用戶界面。簡單歸納和回顧一下,主要有三種方法:

1. 自動旋轉和自動調整大小

通過在Size Inspector面板中,設置各類視圖的Autosizing屬性,無需編寫代碼,但這種僅適用於UI比較簡單的應用。

2. 調整視圖框架(frame屬性)

每一個UI 元素在屏幕上都由一個矩形區域定義,這個矩形區域就是UI 元素的frame屬性。可以使用C語言函數CGRectMake(x,y,width,height) 來重新定義視圖的frame屬性。

如果UI元素比較多,這個需要跟蹤每一個UI元素的大小和位置,代碼設計起來比較麻煩。

3. 重新設計不同的視圖-橫向和縱向視圖

在每一個場景中分別定義橫向和縱向2個視圖,這個每一個視圖都需要定義獨立的輸出口。雖然2個視圖和同一個視圖控制ViewController關聯,但是不能共享輸出口,在視圖控制器中需要交互的UI元素數量會變成 2 倍。當然優點是,不同的視圖完全獨立開了,避免相互影響。

上述三種方式在開發過程中,都存在一些缺點。iOS 6 引入的自動布局(Auto Layout)正是為了改進這個不足之處。個人覺得也可以適應之后不斷增多的不同尺寸的iPad、iPhone設備。

 

iOS 6 編程 -- 自動布局(Auto Layout)相關文章:

iOS 6編程(15)-創建自動布局(Auto Layout)簡單應用

iOS 6編程(16)-Interface Builder自動布局功能

 

 


未完待續!! 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM