2014-11-24 95 views
2

我在控制檯中收到通常的Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. ...警告。AutoLayout:無法同時滿足約束日誌不清

列表中的一個制約因素是:

"<NSLayoutConstraint:0x7fe7bda00ff0 MyView:0x7fe7bbc934f0.height ==>" 

現在,警告本身的意義是相當清楚的:一些約束的衝突和發動機無法滿足所有的人。當通過代碼設置約束時,這很常見,就像我在這個例子中做的那樣。

我不清楚的是這個特定約束的含義。平等中缺失的正確部分是什麼意思?

我的猜測是,這意味着height取決於其子視圖設置的約束。它是否正確?

+0

這意味着你有太多的約束,他們有衝突。你是否在代碼中設置了約束?如果是這樣,請向我們顯示代碼。 – sikhapol 2014-11-24 05:01:43

+0

@SikhapolSaijit是的,他們是在代碼中設置的,是的,我知道它的信息意味着有衝突。我不確定沒有任何正確價值的具體約束是什麼意思。我已經更新了這個問題,以便更清楚。謝謝。 – mokagio 2014-11-24 05:09:46

+0

如果您將其設置爲代碼,請嘗試將「translatesAutoresizingMaskIntoConstraints」設置爲「NO」,以使所有涉及這些添加約束的視圖都被設置爲「NO」。 – sikhapol 2014-11-24 05:40:38

回答

0

在你的約束條件下有一個額外的約束條件是不需要的。

例如,

假設你給予約束開頭和結尾,你也都給人一種寬度的限制,這將導致該警告的編譯器。因爲你需要一個寬度約束或尾隨約束,否則編譯器會混淆寬度或尾隨。

對於自動佈局,您需要記住一件事情,您需要制定這樣的約束,編譯器知道有關視圖x,y,寬度和高度的任何視圖。

相關問題