3 回答
TA贡献1784条经验 获得超7个赞
我抛出了很多这样的异常,我找到解决它们的最快,最简单的方法是在异常中找到唯一的值,然后在情节提要源代码中搜索这些异常。这帮助我找到了导致问题的实际视图和约束(我在所有视图上使用了有意义的userLabel,这使得跟踪约束和视图变得容易得多)...
因此,使用上述例外,我将在xcode(或其他编辑器)中以“源代码”的形式打开情节提要,并寻找可以找到的东西...
<NSLayoutConstraint:0x72bf860 V:[UILabel:0x72bf7c0(17)]>
..这看起来像UILabel上的垂直(V)约束,值为(17)。
查看例外情况,我也发现
<NSLayoutConstraint:0x72c22b0 V:[UILabel:0x72bf7c0]-(NSSpace(8))-[UIButton:0x886efe0]>
看起来UILabel(0x72bf7c0)接近于UIButton(0x886efe0),并具有一定的垂直间距(8)。
希望这足以让我在情节提要源代码中找到特定的视图(可能是通过最初在文本中搜索“ 17”)或至少一些可能的候选者。从那里,我应该能够真正找出这些故事在情节提要中的哪些视图,这将使查找问题变得容易得多(查找“重复的”固定或固定与大小限制冲突的位置)。
TA贡献1725条经验 获得超7个赞
请注意,不要在同一方向和类型上使用多个约束。
例如: 尾随的垂直约束= 15,而另一个约束> = 10。
有时,Xcode会创建一些您没有注意到的约束。您必须摆脱冗余约束,日志警告肯定会消失。
另外,您可以直接从日志中读取和检测某些特定原因:
NSLayoutConstraint:0xa338390 V:|-(15)-[UILabel:0xa331260](名称:'|':UILabel:0xa330270)>
这可以理解为UILabel约束中的问题,它导致垂直约束长15pt。
NSLayoutConstraint:0x859ab20 H :-( 13)-| [UIView:0x85a8fb0] ...
这将是尾随水平约束等。
- 3 回答
- 0 关注
- 2115 浏览
添加回答
举报