我有一個包含幾個約束的視圖。其中一些已關閉「已安裝」複選框。我正在嘗試根據應用程序的狀態激活和停用特定的約束。激活在故事板中被卸載的約束條件
問題是,當安裝的複選框關閉時,我無法激活約束條件,也無法停用已安裝的約束條件。 我需要提到的是,我在我的大小類屬性中使用強引用來約束。在激活/關閉約束條件後,我還嘗試了一種調用setNeedsUpdateConstraints
和updateConstraintsIfNeeded,setNeedsLayout
和layoutIfNeeded
的方法。
我找不到有關此行爲的任何文檔,爲什麼會發生這種情況?
可能是你忘了約束與IBOutlet中的變量連接?或者你在故事板中有不同的VC課程?要檢查這個添加斷點到viewDidLoad函數並查看IBOutlet變量。 –
您應該連接一個IBOutlet進行約束,並根據您的要求更新constraintVariable.active = Yes/No。之後調用layoutIfNeeded方法。 –
我檢查了IBOutlets,他們沒事。當我調用setActive時,它甚至改變了活動屬性的值,但是當我調試View Hierarchy時,我找不到卸載和激活的約束(通過代碼)。我只有已安裝的屬性(我已將它們設置爲通過代碼停用)。我也叫layoutIfNeeded和約束/佈局更新的每個可能的組合。 – Dan