天天看點

Auto Layout Gide:IB中使用自動布局

[size=x-large][b]IB中使用自動布局[/b][/size]

添加、編輯、删除限制最簡單的方法是通過IB上面的可視化布局工具。通過在2個View之間拖動限制即可立即建立一個或者多個限制。這些都是在拖動視圖産生的彈出框中操作的

[size=large][b]添加限制[/b][/size]

當你從對象庫拖動一個控件到IB畫布上時,你可以毫無限制的通過選擇控件然後拖動到四周來給他添加限制。如果你不添加任何限制,你會發現IB會預設固定控件的高度、寬度。然後會根據他的父視圖的左上角來固定他。這意味着改變父視圖的視窗不會移動或者調整控件。 為了使得控件的大小、位置合适 ,你需要為他添加正确的控件。

[b]要點:[/b]雖然在建構一個使用者頁面如果沒有合适的限制Xcode不會提示一些警告或者錯誤資訊,但是你還是應該解決掉警告或者錯誤的限制。

目前有多種添加限制的方法,至于選擇那種方法,主要取決你一次需要添加多少,或者多高精度的限制

[size=large][b]通過拖動添加限制[/b][/size]

最快添加限制的方法是拖動,你可以選擇一個限制,然後拖動到畫布中的另一個視圖上,操作方法很像拖動outlets和actions。當你明确知道你的控件需要哪種限制,或者什麼地方需要限制。拖動方法是最快、最精确的。

你也可以拖動一個控件到本身、到他的父視圖、到另個一視圖。這将取決你的拖動方向和拖動到哪個控件對象。自動布局對某些拖動的操作可能性做了限制, 比如,你水準向右拖動控件到他的父視圖,你可以擷取trailing space to contaner 和center vertically in container兩個限制選擇

[img]http://dl2.iteye.com/upload/attachment/0105/6856/ff29a597-3da8-3e3a-921d-b0d3fec4e4d1.png[/img]

小記:在拖動菜單上面, 按住Command 或者shift鍵 可以同時選擇多個限制

[size=large][b]通過Align 和 pin按鈕添加限制[/b][/size]

你同樣可以通過自動布局菜單來添加限制,自動布局菜單在IB畫布上面

[img]http://dl2.iteye.com/upload/attachment/0105/6858/cbe85792-e8ba-3522-ab5b-5691ebc6d7db.png[/img]

除了添加對齊、間距限制之外,你也可以使用該菜單來解決布局問題、調整限制行為。

[img]http://dl2.iteye.com/upload/attachment/0105/7104/0ae3dfc7-f552-393a-a0ba-3a379eeef2dd.png[/img]

[b]Align[/b]

建立對齊限制,比如設定一個view在父視圖中間,或者在固定2個view左邊距對齊

[b]pin[/b]

建立間距限制,比如确定一個視圖的高度,确定一個視圖到另一個視圖的水準距離

[b]Issues[/b]

根據建議(檢視[url]解決自動布局問題[/url])添加或者重置限制來解決布局問題

[b]resizing[/b]

确定限制所作用的視圖

[img]http://dl2.iteye.com/upload/attachment/0105/7110/61780a59-cbf3-3cfd-8160-6329ac404e1b.png[/img]

如果某個限制需要多個視圖的話,那麼當你隻選擇一個視圖的時候,該限制是不能操作的

[b]通過Align和Pin菜單添加限制[/b]

1、選擇限制旁邊的複選框

選擇“Spacing to nearest neighbor”,點選紅色的限制來确定控件所要限制的方向

[img]http://dl2.iteye.com/upload/attachment/0105/7112/7621b3c5-8d3f-3fa4-b306-e1fd5e2e6be1.png[/img]

如果你要建立的控件的限制是基于某一個控件而并非是最近的控件,則選擇複選框上的倒三

進行選擇角形

2、輸入相應的常數值

3、點選建立限制按鈕

建立按鈕添加了你新選擇的限制

建立并更新架構按鈕将添加你選擇的新的限制,并且根據新的限制重新重新整理頁面

[size=large][b]修改限制[/b][/size]

你可以修改限制的限制值、關系、優先級。你可以輕按兩下畫布上的指定限制,然後修改限制的屬性值。也可以在屬性檢測器上面進行屬性修改。當然你不可以修改限制的類型(比如你修改一個高度限制為寬度限制)

筆記:你每次通過點選這兩個按鈕中的其中一個來建立新的限制,你不可以修改存在的限制,如果需要修改存在的限制,詳情 [url]修改限制[/url]

[b]添加丢失、推薦的限制[/b]

當你在開始進行頁面布局,或者當你需要快速添加一系列限制的時候,你可以使用issues menu。

如果你想一次性添加多個限制來描述你的頁面布局,選擇 issues>Add Missing Constraints 來添加。這個指令是在本來限制的基礎上做了系統自動推斷處理。

如果你想自動修複一些存在錯誤的限制,或者你隻想重新開始 選擇 issue> Reset to Suggested Constraints。來删除一些錯誤的限制和添加nonambiguous的限制。這明确清除

限制

[size=large][b]删除限制[/b][/size]

你可以随時删除限制,通過選擇畫布上的限制或者在outline視圖上選擇指定限制,然後按删除鍵删除