非活动约束变为活动?

Inactive constraint becomes active?

我在我的故事板中做了一个约束并连接到我的视图控制器中的一个变量。在 updateViewConstraints 中,我将约束的 active 属性 设置为 false。

当我做的时候

self.view.setNeedsUpdateConstraints()
self.view.layoutIfNeeded()

in viewDidLoad, layoutIfNeeded 调用 updateViewConstraints 将约束设置为不活动,但随后某处将约束设置为活动,然后 UIViewAlertForUnsatisfiableConstraints 符号由于与我的其他约束冲突,断点被击中。当我在此断点处进一步检查 .active 的值时,它是 true.

这只发生在 viewDidLoad。在视图显示在屏幕上之前,再次调用 updateViewConstraints,这次将约束设置为不活动,并且布局正确。我仍然在控制台中收到冲突约束错误。这是一个错误吗?

编辑:这是导致将约束设置为活动的堆栈跟踪:

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