为什么在iOS 8中使用自调整大小的UITableView单元格时无法同时满足约束条件?

为什么在iOS 8中使用自调整大小的UITableView单元格时无法同时满足约束条件?,uitableview,ios8,autolayout,interface-builder,Uitableview,Ios8,Autolayout,Interface Builder,自从iOS 8发布以来,我经常使用自调整单元格大小,但最近我遇到了如下错误: 2015-07-31 08:25:10.610 Evensity[78297:3090623] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each

自从iOS 8发布以来,我经常使用自调整单元格大小,但最近我遇到了如下错误:

2015-07-31 08:25:10.610 Evensity[78297:3090623] Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSLayoutConstraint:0x7fbae3485d50 V:[UITextField:0x7fbae3486ab0(55)]>",
    "<NSLayoutConstraint:0x7fbae3424790 V:|-(2)-[UITextField:0x7fbae3486ab0]   (Names: '|':UITableViewCellContentView:0x7fbae3486990 )>",
    "<NSLayoutConstraint:0x7fbae3487480 V:[UITextField:0x7fbae3486ab0]-(2)-|   (Names: '|':UITableViewCellContentView:0x7fbae3486990 )>",
    "<NSLayoutConstraint:0x7fbae0c525a0 'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x7fbae3486990(59)]>"
)
2015-07-31 08:25:10.610均匀度[78297:3090623]无法同时满足约束条件。
可能下面列表中至少有一个约束是您不想要的。试着这样做:(1)看看每个约束,试着找出你不期望的约束;(2) 找到添加了不需要的约束的代码,然后修复它。(注意:如果您看到不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性TranslatesAutoResizingMaskToConstraints的文档)
(
"",
"",
"",
""
)
这是一个非常简单的单元格,它只包含一个UITextField,没有其他内容

很难从图片中看到,但文本字段的高度限制为55,垂直间距限制(顶部和底部)各为2。由于可以自行调整大小,iOS添加了UIView封装布局高度垂直大小限制59(55+2+2)。这对我来说似乎不是冲突,但我仍然在日志中看到这个警告

仅供参考,进入屏幕后,会立即显示断开的约束消息;它不依赖于滚动来导致单元重用


我在这里遗漏了什么可以解释这一点,我将如何纠正这一点?从用户的角度来看,一切似乎都在按预期工作。但是,我非常相信,如果auto layout正在向控制台写入警告,我应该纠正它们,因为它们总有一天会成为问题。

也许每一个都会指示auto layout运行时执行一些相互矛盾的操作

也许可以试试:

tableView.translatesAutoresizingMaskIntoConstraints = NO;

可能每一个都指示自动布局运行时执行与另一个相矛盾的操作

也许可以试试:

tableView.translatesAutoresizingMaskIntoConstraints = NO;

这里不涉及任何自动调整掩码大小的约束;我的问题列出了涉及的四个约束条件。其中三个是xib中的约束,第四个是封装的布局高度约束。来自xib的三个加起来似乎与封装布局高度的值相同,这是有意义的,因为我使用的是自动调整大小的单元格,其大小基于我的自动布局约束;我的问题列出了涉及的四个约束条件。其中三个是xib中的约束,第四个是封装的布局高度约束。xib中的三个加起来似乎与封装布局高度的值相同,这是有意义的,因为我使用的是自动调整大小的单元格,这些单元格的大小是根据我的自动布局约束确定的。你有没有想过如何消除警告?你有没有想过如何消除警告?