ios – 非活动约束变为活动状态?

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

当我做

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

在viewDidLoad中,layoutIfNeeded调用updateViewConstraints,它将约束设置为不活动,但之后在某处将约束设置为活动,然后由于与其他约束冲突而导致UIViewAlertForUnsatisfiableConstraints符号断点被命中.当我在这个断点处检查.active的值进一步向上时,这是真的.

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

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

最佳答案
active属性实际上是一个虚拟属性,仅指示是否已安装约束.如果将其设置为true,则会将其自身安装到两个视图中最近的共同祖先中.所以它变得活跃,因为在故事板中它被安装在视图中.为了解决我的问题,我简单地解决了在故事板中安装的问题.

转载注明原文:ios – 非活动约束变为活动状态? - 代码日志