UITableView的iOS 8灰色框

我正在制作一个应用程序,我需要使用UITableView以有组织的方式显示内容,但是由于我已更新到iOS 8和Xcode 6,所以几乎在整个视图中都有一个神秘的灰色框。 这可以在下面的图片中看到。 这不会发生在每个UITableView ,只是一些(没有明显的模式)。

在这里输入图像说明

iOS 8 ,你必须UITableView的委托中指定一个高度:

 -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return 44.0; } 

iOS 7和更早版本中,接受了默认值。 请参阅此链接了解更多信息。

这绝对是XCode6-Beta2中的一个错误。 我find了一个解决方法。 select故事板,然后转到File Inspector实用程序。 取消选中“使用自动布局”选项,然后在popup窗口中单击“禁用大小类”。

自动布局在beta2中似乎已经非常糟糕。 一旦closures了大小类,神秘的“模棱两可的可滚动内容”警告也将消失。

之后,我可以重新调整“大小类别”和“自动布局”,并且灰色矩形仍然消失,但丢失“大小类别”信息后,所有内容都出错了。 一团糟。

奇怪的是,它必须处理表视图分隔符样式。 如果将其设置为“无”,问题将消失。 但是,当然,那么你没有分隔符! 如果要使用单行分隔符,则必须在-tableView:heightForRowAtIndexPath:手动指定单元格高度。

我不知道为什么会出现这种情况,但我猜测它与新的自动调整表格行有关。 时间做一些研究:)

在iOS 8中,行高可以自动为您设置。 你所要做的就是对UITableViewCell的contentView设置一个顶部和底部约束,就像这样(注意约束):

界面生成器 - 定义uitableviewcell

通过这样做,行的高度将是自动的,你不需要设置一个固定的高度。 这将修复您遇到的灰色背景色。

资源: http : //www.shinobicontrols.com/blog/posts/2014/07/24/ios8-day-by-day-day-5-auto-sizing-table-view-cells