UITableView上的iOS 8灰色框

时间:2014-06-23 06:56:40

标签: ios cocoa-touch uitableview ios8

我正在创建一个应用程序,我需要使用UITableView以有组织的方式显示内容,但自从我更新到iOS 8和Xcode 6后,我几乎在整个视图中都获得了一个神秘的灰盒子。这可以在下图中看到。这不会发生在每个UITableView上,只有一些(没有明显的模式)。

enter image description here

4 个答案:

答案 0 :(得分:19)

iOS 8中,您必须UITableView代表中指定一个高度:

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

iOS 7及更早版本中,接受了默认值。有关详细信息,请参阅this link

答案 1 :(得分:0)

这绝对是XCode6-Beta2中的一个错误。我找到了一个解决方法。选择故事板,然后转到文件检查器实用程序。取消选中"使用自动布局"然后单击"禁用大小类"在弹出窗口中。

在beta2中,自动布局似乎相当破碎。一旦你关闭大小类,神秘的"模糊的可滚动内容"警告也会消失。

之后我能够重新打开大小类和自动布局,灰色矩形仍然消失,但是在丢失大小类信息后一切都在错误的位置。这真是一团糟。

答案 2 :(得分:0)

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

我不知道为什么会这样,但我猜它与新的自行调整表行有关。是时候做一些研究了:))

答案 3 :(得分:0)

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

Interface builder - defining the uitableviewcell

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

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