2014-09-29 39 views
0

因爲我有Xcode6我的生活變成了一場噩夢。 我只是無法理解約束和故事板問題,我想得到一點幫助,我做了很多努力,但事情似乎沒有工作。爲什麼Xcode不斷改變故事板辯護

首先,有一個按鈕說w Any h Any,其中你可以選擇你的屏幕大小。我將它設置爲fit all iPhones in portrait。爲什麼Xcode每次我再次打開時都將它更改回Any? 他爲什麼不保持這種配置?

其次,我想嘗試和理解這件事,有沒有什麼不同,當我在all iPhones上工作或當我在Any上工作?所以例如,如果我設置了一些標籤並將其約束條件設置爲Any,如果我在模式all iPhones中執行相同操作,它會看起來不同嗎?

換句話說,請糾正我,如果我錯了,有這樣的:如果我設置一個標籤在iPhone的模式爲中心,不是從上限制其垂直距離爲X,和故事板高度爲y,因此對於屏幕高度爲y * a的任何iPhone,該距離將變爲x * a?那是對的嗎 ?

+0

我沒有,問題不是關於具體的觀點,它瞭解原理,你可以在屏幕上假設一個標籤。順便說一句,你能幫我理解我的第一個和第二個問題嗎? – Curnelious 2014-09-29 10:11:43

回答

1

這與Xcode 6的一個名爲「Size classes」的新功能有關,您可以在其中爲不同的設備類別定義不同的約束/子視圖。

不能定義iPhone大小的肖像類除非你還定義基礎任何規模大小類,這就是爲什麼它在不斷變化回來。

有關官方Apple文檔的更多說明,請參閱here

回答你的第二個問題是沒有,他們不會改變:與大小類您可以啓用/禁用/更改限制取決於尺寸級別,但是約束的基本功能將是在所有大小類別上都是相同的(例如,superview約束中的中心總是使用當前超視圖邊界居中)。

+0

非常感謝,我不確定我是否理解你所說的話。我已閱讀過蘋果文檔,1。當你設置尺寸等級時,它總會使其成爲「任何」?我曾經禁用它,並刪除了所有我的約束! 2.這裏的東西,仍然不是邏輯。如果將其設置爲Any,則故事板爲600x600,這意味着寬高比爲1:1。對於您放入的每個視圖,所有距離都將按1:1進行計算,因此,對於使用2:3的設備,它當然會有所不同。換句話說,根據這個,我可以如何解釋x * a的例子? – Curnelious 2014-09-29 10:22:20

+0

故事板上視圖的大小隻是代表性的。默認情況下,視圖控制器的視圖將採用設備窗口的大小(或更具體地說,是其父視圖的大小)。限制條件不會根據預先計算的寬高比計算距離。約束將相互關聯的屬性與您手動定義的度量關聯起來。 「中心」約束只是定義:「在其超級視圖中居中」。 – 2014-09-29 10:37:54

+0

我認爲重新閱讀[AutoLayout introduction](https://developer.apple)是個好主意。COM /庫/ IO的/文檔/ UserExperience /概念/ AutolayoutPG /介紹/ Introduction.html),然後讀出[尺寸類(https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/章節/ ChangeViewPosition.html#// apple_ref/doc/uid/TP40014436-CH9-SW1)文件。這裏都有解釋。 – 2014-09-29 10:38:55