我沒有在故事板中定義任何約束,只是拖放了一些文本字段和按鈕。我試圖以編程方式更新它們的大小和位置。我將它們引用IBOutlets
並嘗試使用CGRectMake()
在viewDidLoad()
函數中更新它們。根據故事板,我的文本字段和按鈕顯示在位置上。同樣,這些位置是隨機的,我沒有定義任何約束。swift autoLayout覆蓋CGRectMake
有沒有人知道如何解決這個問題,而不禁用autoLayout
類?這個項目需要更多的工作。
我沒有在故事板中定義任何約束,只是拖放了一些文本字段和按鈕。我試圖以編程方式更新它們的大小和位置。我將它們引用IBOutlets
並嘗試使用CGRectMake()
在viewDidLoad()
函數中更新它們。根據故事板,我的文本字段和按鈕顯示在位置上。同樣,這些位置是隨機的,我沒有定義任何約束。swift autoLayout覆蓋CGRectMake
有沒有人知道如何解決這個問題,而不禁用autoLayout
類?這個項目需要更多的工作。
如果您將視圖添加到故事板中,則約束條件爲總是定義。如果您不添加它們,它們將在編譯期間自動添加。
如果你真的想要一個觀點沒有約束,矛盾的是,你必須添加它們,然後檢查:
每一個約束,你不希望被導出。
然後在代碼中,您將不得不爲每個這樣的視圖設置translatesAutoresizingMaskIntoConstraints到true
,否則它的frame
將被忽略。
或者只是,你知道,關閉整個故事板文件的自動佈局。 –
@ ken-thomases這有點激進:)大多數時候你不想完全關閉自動佈局。 – Sulthan
這不是大部分時間。提問者顯然不準備爲這個故事板使用自動佈局。這不是魔術。如果你關掉它,沒有禍害你。如果你不打算使用它,關掉它是一件簡單而正確的事情。按照你的建議去做很多努力來挫敗它,情況會更糟糕。 –
'viewDidLoad'是操作任何佈局信息的錯誤地方。 – luk2302
'CGRectMake()'只是創建一個包含四個數字的結構。而已。就是這樣。它不會做任何事情。這與你的問題基本無關。據推測,你打算告訴我們的是你正在設置視圖的「邊界」或「框架」屬性。這是相關的。 –