我在情节提要中进行了约束,并连接到了视图控制器中的变量。在updateViewConstraints我将约束的active属性设置为false。
当我做
self.view.setNeedsUpdateConstraints()
self.view.layoutIfNeeded()
Run Code Online (Sandbox Code Playgroud)
在中viewDidLoad,layoutIfNeeded调用updateViewConstraints将约束设置为非活动状态,但是在此之后的某个位置,它将约束设置为活动状态,然后UIViewAlertForUnsatisfiableConstraints由于与其他约束发生冲突而出现了符号断点。当我.active在此断点处检查堆栈进一步的值时,它为true。
这仅在中发生viewDidLoad。在视图updateViewConstraints再次显示在屏幕上之前,将再次调用该视图,这一次将约束设置为非活动杆,并且布局正确。我仍然在控制台中收到冲突的约束错误。这是错误吗?
编辑:这是导致将约束设置为活动的堆栈跟踪:

该active属性实际上是一个虚拟属性,仅指示是否安装了约束。如果您设置它true,它会将自身安装到两个视图的最近的共同祖先中。所以它变得活跃,因为在故事板中它被安装在视图中。为了解决我的问题,我只是取消了Installed情节提要中的勾选。