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