2016-05-17 28 views
1

我的問題是,我可以在如果我使用故事板中的「添加缺失約束」選項來分配故事板中的約束,該怎麼辦?

解決自動佈局問題信任 - ‘添加缺少的約束’

選項(如所附Screen shot),它會自動添加約束存在的對象在故事板?

我用這一點,並試圖運行在所有的屏幕格式的應用程序,它工作得很好,所以我可以繼續使用或者是錯誤的考慮「添加缺少的約束」的約束設計。我是新來的自動佈局和任何形式的反應,解釋這個概念將不勝感激。由於

+0

這是錯誤的。即使在你上面描述的情況下,你也不能說它在所有屏幕上都能正常工作。添加缺少的約束將僅添加約束條件以滿足條件。根據你的意願,它不會添加約束條件。 – Irfan

+0

爲什麼會這樣呢?我可以先執行添加缺少的約束,然後重新指定我想以我的方式工作的約束對嗎? –

+1

它會自動生成約束......如果你不想要center-x並想要頂部和底部空間...... –

回答

1

利用自動約束系統是主意。大多數情況下,它不適用於所有屏幕尺寸。它通常會增加約束條件,以便在您設計的當前分辨率下正確顯示對象。

例如,它可能會根據距離屏幕左邊緣的距離將您放置在iPhone屏幕中央的標籤屏幕而不是X值。當你在iPad上運行它時,距離邊緣的距離將保持不變,並且它將顯着偏離中心以滿足該限制。

然而,視情況而定,它可以正確地固定這些(IE前緣到超視圖,而不是一個常數)。你可以使用自動約束系統的建議來引用你需要添加的東西,但我不會依賴它的動態用戶界面。

花時間學習自動佈局,而不是在黑暗中投擲飛鏢,這真的不是恐嚇,因爲它似乎!

0

不只是添加所需的恆定,可它們被固定,刪除所有限制,然後再試一次。

1

不,你不應該信任。 Add missing constraints將添加缺少的約束。它不會添加您的設計實際需要的約束。

所以我建議你理解你需要完成UI的約束。編譯器需要知道:x,y,寬度和高度。對於每個控件,編譯器都需要知道它:x,y,寬度和高度

例如:你在你的廈門國際銀行拖動&下降的UILabel。現在您添加頂部空間約束。所以編譯器會發出警告。需要約束:X位置。

上面的例子中寬度和高度將根據標籤的文本。現在你已經給了頂層空間,所以它的y位置是已知的。

但是對於X你沒有給出任何約束。在這種情況下,如果您使用Add missing constraints。編譯器將根據您的位置爲x位置添加約束。它可能是你的需求約束或可能不是。

0

就像別人說什麼,「添加缺少的約束上」將永遠給你希望的佈局的結果。您最好學習手動添加約束。但是,有時候你可以通過使用該方法懶惰幾秒鐘,但只能用於非常簡單的佈局。

我只是分享一下我應該什麼時候使用這種方法的想法。

我使用「添加缺少的約束」時:

  1. 我的佈局是非常簡單的,它就像我知道,當我這樣做,它會自動將產生相同的結果做手工。這有助於節省大量時間。

  2. 我手動設置約束,但有時我不知道我缺少什麼約束,因爲我設置約束的對象仍顯示紅線(缺少約束)。這只是我的學習目的。

相關問題