2017-09-14 78 views
4

這裏有this other question解決類似的問題,但在這種情況下,Xcode的行爲是正確的,只是煩人。「修正了引導和尾隨約束可能導致剪輯」的錯誤?

在我的情況,但是,我認爲它實際上是一個錯誤:

example

這個標籤可以有線條的數量不受限制,所以它永遠不會被裁剪,文本將剛剛突破。

它正常工作與每一個定位:

example2

我想爲中心的標籤,我想文字是從邊緣至少20個像素了,所以我設置了固定的約束領先和尾隨。 Xcode希望我將其中的一個更改爲「大於或等於」約束,但在這種情況下,文本將不會完全居中(我試過)。

我想要的是居中的文本不會太接近邊緣,但現在如果不觸發該警告就無法完成。

有關如何解決此問題的任何想法?這真的是一個錯誤,或者我做錯了什麼?


編輯:下面是顯示錯誤的屏幕截圖。約束不是直接在視圖控制器中,而是在我用作表視圖背景的子視圖中。如果我消除這些限制,警告就會消失;如果我加回來,它會再次出現。我在一個新項目中嘗試了這個,並且無法複製它,我不知道爲什麼它在這裏發生。

example3

編輯:

這裏是另外一個例子。當右限制設置爲「大於或等於」結果好:

example4

當我將它設置爲「平等」,熱潮:

example5

+0

你能發佈你收到的警告嗎?以及哪個xcode是你正在使用的? –

+0

@ReinierMelian Xcode 9;我將其設置爲標籤,但在文本中忘記提及。警告是標題中的警告。完整的文字說:「固定的前後約束可能會導致削波,其中一個應具有恆定的≥標準空間」。謝謝。 :) – dbmrq

+0

@ReinierMelian如果我將其中一個約束設置爲「大於或等於」,則警告消失,但文本不會位於視圖中央。 – dbmrq

回答

2

經過在XCode中9GM(9.0版(9A235)),它工作正常

enter image description here

雷莫約束並手動添加它們。

+0

奇怪的是,我只是在一個新項目上嘗試過它,它工作正常,但由於某種原因,它仍然發生在我之前工作的項目上,即使我刪除了約束並將它們添加回來。 :/ – dbmrq

+0

@dbmrq請使用此VC的其餘視圖及其約束進行截圖 – OMGHaveFun

+0

我使用另一個屏幕截圖編輯了我的問題。謝謝你的幫助。 – dbmrq

2

這裏有一些問題,與最終版本的Xcode9一起引入。似乎這個bug與語言方向有關:由於某些原因,Interface Builder不能很好地理解默認語言方向條件的自動佈局。

正如Repose對此thread所暗示的,您應該嘗試使至少一種失敗的約束(即尾隨)的語言方向的使用無效。這種方法解決了我的警告。

1

如果你仍然在尋找一個答案,在你的特殊情況下,嘗試在你的標籤上設置一個比例寬度,並在視圖控制器的視圖中水平居中。

清除所有標籤上的限制,從標籤上單擊鼠標右鍵拖動到Background View,並從彈出菜單中Equal WidthsCenter Horizontally in ContainerCenter Vertically in Container選擇。

現在既然您說過要在標籤的左側和右側放置20px的邊距,請在等寬限制上編輯Multiplier並將其設置爲widthOfBackgroundView - 40)/widthOfBackgroundView

假設您的背景視圖的寬度爲414,乘數應爲374/414

width minus 40乘數的原因是它覆蓋標籤兩邊的20像素。這應該會讓您的警告消失,並按照您期望的方式佈置標籤。

我有同樣的問題,並能夠修復警告這種方式。希望這可以幫助!

+0

歡迎來到SO。請不要回答。爲此使用評論。無論如何,問題的作者將會看到你的答案。 – Simon

+0

警告似乎已經消失了,但這是一個好主意,如果它再次發生,我會記住它。 :) – dbmrq

相關問題