iOS UITableView自动布局约束错误,奇怪的行为

iOS UITableView自动布局约束错误,奇怪的行为,ios,uitableview,autolayout,Ios,Uitableview,Autolayout,我在iOS 7.1中看到一些奇怪的行为。iOS 8中不会出现同样的情况 加载UITableViewController时,我会遇到一系列约束错误,无法同时满足约束,这毫无意义。我熟悉约束语言以及如何调试这些错误,但就我的一生而言,我无法了解到底发生了什么 我的桌子上有一堆定制的单元格。出于调试目的,我将单元格减少为一个,以隔离约束错误。呈现时,表格如下所示,显示单个自定义单元格: 约束错误为: "<NSLayoutConstraint:0x7a098570 H:[UIImageView:0

我在iOS 7.1中看到一些奇怪的行为。iOS 8中不会出现同样的情况

加载UITableViewController时,我会遇到一系列约束错误,无法同时满足约束,这毫无意义。我熟悉约束语言以及如何调试这些错误,但就我的一生而言,我无法了解到底发生了什么

我的桌子上有一堆定制的单元格。出于调试目的,我将单元格减少为一个,以隔离约束错误。呈现时,表格如下所示,显示单个自定义单元格:

约束错误为:

"<NSLayoutConstraint:0x7a098570 H:[UIImageView:0x7a0984c0(60)]>",
"<NSLayoutConstraint:0x7a098aa0 H:|-(8)-[UIImageView:0x7a0984c0]   (Names: '|':UITableViewCellContentView:0x7a097ed0 )>",
"<NSLayoutConstraint:0x7a098b30 H:[UILabel:0x7a097f70]-(12)-|   (Names: '|':UITableViewCellContentView:0x7a097ed0 )>",
"<NSLayoutConstraint:0x7a098b60 H:[UIImageView:0x7a0984c0]-(8)-[UILabel:0x7a097f70]>",
"<NSAutoresizingMaskLayoutConstraint:0x79ec3c60 h=--& v=--& H:[UITableViewCellContentView:0x7a097ed0(0)]>"

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7a098570 H:[UIImageView:0x7a0984c0(60)]>
最令人困惑的一行是:

H:[UITableViewCellContentView:0x7a097ed00]

单元格的contentview的宽度似乎为零

因此,自动布局会打破图像宽度约束宽度60。错误不断地出现,打破了每一个不利于零宽度contentview的约束。错误输出完成后,单元格将正确显示

该单元由一个imageview和三个UILabel组成:

我无法理解为什么contentview的宽度为零,或者为什么会出现这些约束错误。在iOS 7.1上的模拟器或设备上运行会出现错误,在iOS 8上的模拟器或设备上运行不会出现错误

有人知道为什么会发生这种情况吗?

我找到了答案

我在iOS7中开始了这个项目,然后在ios8发布的时候升级了xcode。升级后创建的表视图就是显示这种行为的视图

我发现在表视图控制器的CellForRowatineXpath方法中,如果我在单元格出列后放置此代码:

cell.contentView.frame = cell.bounds;
cell.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
它解决了这个问题