*** Assertion failure in -[UIView _addConstraint:],
当我尝试向视图添加约束时,出现以下错误。
*** Assertion failure in -[UIView _addConstraint:], /SourceCache/UIKit/UIKit-2903.23/NSLayoutConstraint_UIKitAdditions.m:518
代码
1 2 3 4
| [self.tabBar removeConstraint:self.bottomSpace];
[self.view removeConstraint:self.bottomSpace];
self.bottomSpaceForTabBar.constant = ...;
[self.view addConstraint:self.bottomSpace]; |
self.bottomSpace被添加到IB中,并且我具有IBOutlet。
- self.bottomSpace与self.bottomSpaceForTabBar有什么不同?
-
@ L14M333对不起,这是一个错误。改了
-
为什么您的前2行从不同的视图中两次删除相同的约束?您只需要其中之一。
-
@ChristopherPickslay因为有时我看到如果对视图执行_autolayoutTrace,则约束将同时添加到两个视图中。
-
您应该从添加了约束的视图中删除约束。同样,但是您不必为了更改常数而删除/重新添加任何约束。
-
@ChristopherPickslay我在IB中添加了它,而不是在代码中添加了它。那么我怎么知道在哪个视图中添加了约束呢?在视图上执行_autolayoutTrace表示在两个视图中都添加了它。
对我来说,问题是我失踪了。
1
| [self.view layoutIfNeeded]; |
在父视图控制器中。
我通过删除删除并添加约束的行来解决它。并且仅保留
1
| self.bottomSpaceForTabBar.constant = ...; |
我不知道为什么这个解决了。我想在此听取其他人的意见。