我有一个包含几个约束的视图。其中一些已关闭“已安装”复选框。我正在尝试根据应用程序的状态激活和停用特定的约束。激活在故事板中被卸载的约束条件
问题是,当安装的复选框关闭时,我无法激活约束条件,也无法停用已安装的约束条件。 我需要提到的是,我在我的大小类属性中使用强引用来约束。在激活/关闭约束条件后,我还尝试了一种调用setNeedsUpdateConstraints
和updateConstraintsIfNeeded,setNeedsLayout
和layoutIfNeeded
的方法。
我找不到有关此行为的任何文档,为什么会发生这种情况?
可能是你忘了约束与IBOutlet中的变量连接?或者你在故事板中有不同的VC课程?要检查这个添加断点到viewDidLoad函数并查看IBOutlet变量。 –
您应该连接一个IBOutlet进行约束,并根据您的要求更新constraintVariable.active = Yes/No。之后调用layoutIfNeeded方法。 –
我检查了IBOutlets,他们没事。当我调用setActive时,它甚至改变了活动属性的值,但是当我调试View Hierarchy时,我找不到卸载和激活的约束(通过代码)。我只有已安装的属性(我已将它们设置为通过代码停用)。我也叫layoutIfNeeded和约束/布局更新的每个可能的组合。 – Dan