我在运行时遇到不可满足的约束错误(iOS 8.3,XCode 6.3,iPad Air模拟器),但错误本身与我在View Hierarchy调试器中观察到的数据相矛盾。
运行时错误:
<form id="form1" runat="server">
<div data-ng-controller="dashboardController">
{{message}}
</div>
</form>
在Visual Hierarchy调试器中,我选择上面列出的约束并在对象检查器中查看它们。在这里他们是有序或外观:
"<NSLayoutConstraint:0x7fd7b96a8e30 V:[PushDownView:0x7fd7b96a8890(100)]>",
"<NSLayoutConstraint:0x7fd7b943fa00 V:[UIView:0x7fd7b943f7d0(80)]>",
"<NSLayoutConstraint:0x7fd7b96ac9a0 V:|-(0)-[PushDownView:0x7fd7b96a8890] (Names: '|':UIView:0x7fd7b943f7d0 )>",
"<NSLayoutConstraint:0x7fd7b96ad3a0 PushDownView:0x7fd7b96a8890.bottom == UIView:0x7fd7b943f7d0.bottom>"
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7fd7b96a8e30 V:[PushDownView:0x7fd7b96a8890(100)]>
查看约束Address: 0x7fd7b96a8e30
First Item: PushDownView
Relation: Equal
Multiplier: 1
Constant: 100
Priority: 76
Address: 0x7fd7b943fa00
First Item: UIView
Relation: Equal
Multiplier: 1
Constant: 100
Priority: 76
Address: 0x7fd7b96ac9a0
First Item: PushDownView
Relation: Equal
Multiplier: 1
Constant: 0
Priority: 76
Address: 0x7fd7b96ad3a0
First Item: PushDownView
Relation: Equal
Multiplier: 1
Constant: 0
Priority: 76
- 错误声称它将UIView的高度设置为80.但是对象检查器声称常量为100.
据我所知,我在代码中设置为100(但我可能会弄错,所以让我们坚持这里的事实)。
我在这里缺少什么?为什么错误和Visual Hierarchy检查器的值不同?
答案 0 :(得分:0)
我看到你的约束的下一个问题:
2. "<NSLayoutConstraint:0x7fd7b96ac9a0 V:|-(0)-[PushDownView:0x7fd7b96a8890] (Names: '|':UIView:0x7fd7b943f7d0 )>",
- 你设置了&#39;身高&#39;到100
3. "<NSLayoutConstraint:0x7fd7b96ad3a0 PushDownView:0x7fd7b96a8890.bottom == UIView:0x7fd7b943f7d0.bottom>"
- 以下限制条件告诉我们&#39; pin&#39;查看超级视图的顶部
redis = Redis.new
redis.set("key", data1)
- 如您所见,此约束将PushDownView固定在UIView底部的底部。
我们现在在这3个约束之间存在冲突 - 当uiview尝试布局子视图时,它会导致。
删除高度限制或删除最后一个约束 - 这取决于你想要什么 - 如果你想要PushDownView缩放 - 首先删除,如果你需要固定高度 - 删除第三个