我已经在 IB 中设置了多组约束,我希望根据某些状态以编程方式在它们之间切换。有一个 constraintsA插座收集所有这些被标记为安装从 IB,和一个 constraintsB插座收集所有这些都是卸载在 IB。
我可以通过编程在两个集合之间切换,如下所示:
NSLayoutConstraint.deactivateConstraints(constraintsA)
NSLayoutConstraint.activateConstraints(constraintsB)
但是... 我不知道 when是怎么做到的。看起来我应该能在 viewDidLoad中做到一次,但是我不能让它工作。我尝试在设置约束之后调用 view.updateConstraints()和 view.layoutSubviews(),但是没有用。
我确实发现,如果我在 viewDidLayoutSubviews中设置约束,一切都会按预期运行。我想知道两件事。