2015-05-19 61 views
10

我一直在學習Xcode和iOS,並且編碼方面進展順利,但我對界面構建器中的一些選項感到困惑。XCode(Interface Builder):更新框架和約束?

看來,當我添加一個限制時,我可以選擇「更新框架」,然後選擇「新限制條目」或「所有框架」,但似乎並不總是需要這樣做......有時候我會,有時我不會 - 我認爲我沒有真正理解這個概念。它似乎是可選的。什麼時候選擇它?

一旦添加了一個約束,那應該是它?

還有一個上下文菜單(解決自動佈局問題)(在界面構建器底部的第三項,由兩條垂直線之間的三角形表示),這也允許我強制更新約束或更新幀。爲什麼這需要?我注意到裏面的選項通常都是禁用的,所以我認爲這在有問題時會變爲活動狀態?

我真的很感激任何解釋,我曾嘗試搜索互聯網,我無法找到任何具體的,我讀的越多,越糊塗我似乎得到:-)

而且理智檢查:a框架是每個單一控件(視圖)的邊界框,而不僅僅是視圖控件,因此每個視圖(控件)都是它自己的框架。這是正確的嗎?

預先感謝任何幫助

+0

更換這是否意味着點擊'更新Frames'是不實際的運行過程中必要的,只是有你的開發者看到一個更準確故事板表示? – Honey

回答

12

我會嘗試解釋約束和故事板表示的概念。
約束條件 - 用於確定視圖中UIView元素的位置。例如,從視圖頂部到UIView元素頂部的垂直距離。

  1. 定位時,你的應用程序運行
  2. 定位的元素在故事板表示本身

更新框架視圖裏面的元素:當你使用故事板它扮演兩個角色添加約束 - 用於當您想要更新故事板顯示,以便它符合當前應用的約束。當故事板的顯示與約束不匹配時,將出現警告。

添加缺少的約束/更新約束 - 將創建/更改UIView元素上應用的約束,以匹配當前在故事板中呈現的約束。更新幀的其他方式。

+0

謝謝,現在就明白了。 – Martin

3

您不必在「更新幀」每次點擊你添加一個約束,如果你這樣做,它會更新到任何應根據該視圖的框架在約束上。是的,每個視圖都有一個框架,它是相對於視圖superview的矩形。

通常您可能會點擊更新約束(Shift + Command + =),這將允許您調整已經約束的視圖並更新匹配的約束。