2013-12-16 149 views
2

我有一個項目,我用xcode界面構建器添加約束。在特定情況下,我需要在控制器源中添加一些約束條件。我的問題是,雖然我有我正在尋找的結果,xcode返回缺少約束警告。缺失約束Autolayout警告

這是我應該處理的事情嗎?我的意思是,我在源代碼中添加了約束條件。顯示我做了一些更新我的故事板,以瞭解這些?

回答

1

您不需要處理這些問題,但是如果您想擺脫警告,則可以在IB中添加佔位符約束,這些約束會在構建時被刪除,以便用代碼生成的約束替換它們。當您選擇一個約束並轉到屬性檢查器時,您會看到一個框,「佔位符 - 在構建時刪除」。如果您選中該框,那些約束將自動刪除。

0

不,您不需要,如果您在源代碼中添加了約束條件,那麼它將在運行時執行。因此只有在源代碼中添加了這些約束條件時才需要處理這些警告。

0

AutoLayout是一個描述性的「語言」,它描述了在運行時如何呈現佈局(幀大小,間距等)到視圖中。如果缺少約束警告,換句話說,佈局模糊不清,佈局有可能會出現不可預知的行爲。爲了確保您的佈局按照您的意願呈現,您應該清除這些警告。

+0

沒有歧義。我缺少約束警告,但所有這些都是在源代碼中處理的。如果我可以強制xcode考慮源代碼中創建的約束,那麼這種「模糊性」就會消失。還是有問題,或者我可能不明白? – raistlin

+0

不,您仍然有歧義,因爲界面構建器中的約束和源代碼中的約束不會在同一時間應用(UIViewController生命週期的事情)。我的意見是在接口構建器中添加缺少的約束或將所有約束添加到源代碼中。 –