我正在更新我的計算器應用程序以使用新的動態大小的按鈕,並且存在約束問題。盡我所知,包含應該工作正常,但Xcode抱怨錯誤的視圖。它給錯誤觀點提供的價值是不正確的,如果我試圖解決它們,那麼它只會導致更多的觀點被「錯位」。等寬/高度按鈕網格上的iOS約束導致位置和大小發生變化
在下面的截圖中,第一個多色行(橙色,綠色,粉紅色,黃色,紅色)是一排UILabels。它們應該都具有相同的寬度,它們和屏幕邊緣之間的間距爲0。它們位於容器視圖中(Xcode標籤是「註冊標籤視圖」,如下面的截圖所示。)註冊標籤視圖容器具有固定高度約束。
然後在下面,是另一個容器視圖(「鍵盤視圖」),裏面是一個5x8的視圖網格(我的計算器上的按鈕)。按鈕應該都具有相同的寬度,並且都具有相同的高度。在我的故事板中,它們是64x58,完全符合我的320x464鍵盤視圖。 (320/5 = 64和464/8 = 58)。
下面是故事板警告的屏幕截圖。注意最後兩項是動態按鈕(在鍵盤視圖中),它表示其中一個預計爲63寬,另一個預計爲65寬。這是不正確的。他們都應該是64寬,他們都有一個等寬度約束。
其中一個標籤也似乎有同樣的問題,其中Xcode預計其中一個是63寬,但他們應該都是64寬。
您可以在故事板的按鈕均能排隊不重疊(根據其幀)看到的,但是當我在模擬器中運行它,你可以看到他們一個像素相互重疊在每行上的不同的方向:
我設置的約束的方式:我佈置在它們全部使用它們的幀(X,Y,W,H)在故事板中,然後我選擇所有這些,並添加了如下約束:
但隨後立即抱怨說,一些項目是錯誤的。我究竟做錯了什麼?我如何才能正常工作?
使用自動佈局做許多視圖可能是一個真正的痛苦。我會在代碼中使用按鈕,而不是使用約束,或者使用鍵盤的集合視圖 - 在這種情況下,所有對齊工作都將爲您完成。 – rdelmar 2014-09-11 04:59:20
要確保約束正確,您必須通過一個視圖和從上到下嘗試一個視圖。當我貪心時,XCode總是抱怨。當我面對像你這樣的問題時,我總是清除所有限制並重新開始。 – Ricky 2014-09-11 05:05:18
順便說一句,我看到你的故事板中看起來像一個倒退的階段;如果這就是它的原因(從右側循環到計算器視圖左側的行),這不是一件好事。 – rdelmar 2014-09-11 05:57:24