解除视图时发生自动布局内部错误

时间:2015-12-22 06:09:17

标签: ios swift constraints

当我驳回一些我有一些限制的观点时,我得到了一个有趣的错误。

  

自动布局内部错误。找不到传出的行头   传入头部AppName.ViewName:0x7fc072ed8ef0.Width {id:6805}期间   应该优化具有接近零系数的变量   永远不会发生。

我在几个视图中遇到了这个错误,我添加了这些约束。此错误消息的一个变体如下:

  

自动布局内部错误。   在优化期间找不到传入头{id:6630}的传出行头   系数接近于零的变量,绝不应该发生。

有没有人遇到过与此错误类似的问题?有关如何调试它的任何提示?

1 个答案:

答案 0 :(得分:3)

我仍然不能100%确定为什么会这样,但关键是如果整数作为相等宽度或高度的约束值,则约束系数会接近零。 / p>

例如,您不能执行1.2或0.8之类的平坦值,您需要执行0.79999或1.199999,否则您将在某些设备上崩溃。

我更新了所有约束以使用0.7999这样的数字并且它有效。

想要证明疯狂吗?把它放在操场上:

let a: Double = 0.8
let b: Double = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1
print(a == b)
然后,游乐场的结果令人惊讶地读起来:

0.8 0.79999999 "假"

疯狂,但这显示了错误发生的原因。希望这会有所帮助。