ios UI開發之使用xcode5自動布局

2022-08-29 07:21:13 字數 2287 閱讀 1118

。 約束表達規則的布局元素在介面;例如,您可以建立乙個約束,指定元素的寬度,或它的水平距離另乙個元素。 你新增和刪除約束,或者改變屬性的約束,影響你的介面的布局。

在計算執行時使用者介面元素的位置,自動布局系統同時考慮所有約束,並設定位置最好的方式滿足所有的約束。

,地點:

屬性的觀點。

m

浮點值。

。確保你的介面布局適當在所有語言,除非你的約束應該保持相同的語言(如主和細節窗格的順序在乙個分割檢視)。

約束可以有其他屬性設定:

物理大小或抵消,點的約束。

。),這意味著必須滿足約束。 布局系統得到盡可能接近滿足乙個可選的約束,即使它不能完全實現它。

優先順序級別允許你表達有用的條件的行為。 例如,它們是用來表達一些控制項應該大小適合他們的內容,除非更重要的是應該優先考慮的東西。 關於優先順序級別的更多資訊,請參閱

。一些限制,約束可以穿過檢視層次。 在os x郵件應用程式,例如,預設情況下,刪除按鈕在工具欄和訊息表中;在桌面偏好,視窗的底部的核取方塊結合分割檢視窗格他們操作。

)。 也不可能跨越任何檢視有乙個界限轉換(如滾動檢視)。 你可以認為這些觀點是障礙的乙個內部世界和外部世界,但內部不能連線到外部的約束。

告訴布局系統,乙個檢視包含一些內容本身,它不明白,和顯示內容有多大,本質上。

等元素的文字標籤,你應該通常設定元素是其內在的大小(選擇編輯》大小以適應內容)。 這意味著元素將適當的增長和收縮與不同的內容不同的語言。

自動布局結構分配負責控制器和檢視之間的布局。 而不是寫乙個無所不知的控制器,計算檢視需要為給定的幾何的觀點變得更加自組織。 這種方法減少了控制器邏輯的複雜性,並使它更容易設計檢視不需要相應的修改布局**。

儘管乙個檢視指定其內在內容大小、檢視的使用者說它是多麼重要。 例如,在預設情況下,乙個按鈕:

在使用者介面包含兩個按鈕,例如,它由控制器來決定如何按鈕應該成長如果有額外的房間。 應該只有乙個按鈕生長? 應該都種植同樣的嗎? 或者按比例呢? 如果沒有足夠的空間來適應兩個按鈕沒有壓縮或剪下的內容,乙個按鈕應該先截嗎? 或者兩者都同樣嗎? 等等。

nsview

最簡單的方法新增、編輯或刪除約束是使用視覺化布局工具介面構建器。 建立兩個觀點之間的約束和control-dragging一樣簡單,或者一次新增多個約束,你簡單地使用各種彈出視窗。

當你拖動出乙個元素從物件庫並把它放在介面構建器畫布,一開始無約束,使其容易原型介面通過拖動元素。 如果你沒有新增任何的約束,構建和執行乙個元素,您會發現介面構建器修復元素的寬度和高度,和固定針的位置相對於左上角superview;這意味著不移動或改變視窗大小調整的元素。 讓你的介面反應正確大小或方向的改變,你需要開始新增約束。

儘管xcode不生成警告或錯誤當你構建乙個使用者介面,沒有適當的約束,你不應該船您的應用程式在這種狀態。

有幾種方法可以新增約束根據你想要的的精度水平和約束的數量你想新增一次。

新增乙個約束的最快的方法是按住ctrl鍵並拖動乙個檢視在畫布上,就像你建立鏈結網點或行為的方式。 這control-drag方法是一種快速、精確的工具用於建立乙個約束,當你知道你想要什麼型別的約束和你想要的地方。

你可以從乙個元素control-drag本身,它的容器,或者到另乙個元素。 根據你和哪個方向你拖,拖自動布局適當限制約束的可能性。 舉個例子,如果你拖動水平向右的元素的容器,你有選擇銷或元素的尾隨空格中心垂直的容器。

一次選擇多個約束的control-drag選單,按住命令或shift鍵。

,位於介面構建器畫布。

除了新增約束對齊或間距外,您還可以使用該選單解決布局問題,並確定約束調整行為。

檢視建立對齊約束,比如定心的容器,或調整兩個檢視的左邊。

建立間隔約束,比如定義乙個檢視的高度,從另乙個檢視或指定其水平距離。

)。指定調整如何影響約束。

約束選項,需要多個元素被禁用如果您只有乙個元素被選中。

新增約束布局如果你需要乙個起點,或者如果你需要快速做出很多改變。

如果你需要新增大量的約束來描述你的介面布局和你不想新增約束一次,選擇問題》新增丟失的約束新增一組nonambiguous的約束。 這個命令推斷約束基礎上,事情了。

如果您需要恢復到一組約束沒有錯誤,或者你只是想重新開始,選擇問題》重置為建議約束刪除錯誤的約束和新增nonambiguous的一組約束。 這相當於明確約束新增丟失的約束。

可以更改常數、關係和約束的優先順序。 您可以編輯這些屬性可以通過雙擊畫布上的約束和編輯的價值,或通過選擇約束和使用屬性檢查員。 然而,你不能改變乙個約束的型別(例如,你不能改變寬度約束到乙個高度約束)。

刪除任何約束在任何時候通過選擇它在畫布上或在outline檢視和按下刪除鍵。

iOS ui介面vtf 開發

新增約束的步奏 新增控制項到view中 設定translateresizelayoutintoautolayout false 新增約束 注意 約束 出現 有父子關係的約束時候 父 addconstarints 子 兩個子控制項不可以新增相對的view 必須是父親 子 mul constant 相對...

iOS開發之Xcode篇

ios開發之xcode 簡單介紹了xcode4.0以後版本的一些特性,同時選取了會員分享的開發教程和經驗以及論壇裡一些熱門話題,希望能給新手一些建議。限於篇幅,更詳盡或者 並茂的xcode資訊可到蘋果開發者中心查詢 一 工具簡介 二 教程和經驗分享 三 論壇熱門話題 四 問答 工具簡介 xcode是...

iOS UI控制項之UIButton

恢復內容開始 狀態 uicontrolevents 的取值 typedef ns options nsuinteger,uicontrolevents 設定button內部文字和的方法 void settitle nsstring title forstate uicontrolstate stat...