iOS 8 UITableView 上方出现灰色方框

10

我正在制作一个应用程序,需要使用 UITableView 来有序显示内容。但自从我更新到iOS 8和Xcode 6之后,几乎整个视图上都会出现一个神秘的灰色框,如下图所示。这并不是每个 UITableView 都会发生的,只有一些 (没有明显的模式)。

输入图像描述


Don't paste dead link. - Yogesh Suthar
修复了链接。讨厌我的网站提供商。 - Connor
由于iOS 8尚未公开发布,您可能会很难得到答案。苹果不希望您谈论他们的私有API。 - Matt Rees
不要误解Matt的意思,您非常欢迎在苹果开发者论坛上讨论与预发布产品相关的任何问题。 - A-Live
@A-Live:感谢您在帖子中为我添加了那张图片。我没有足够的声望(虽然不理解这是什么,但没关系)。 - Connor
就此问题,我也遇到了同样的困扰(那个巨大的灰色矩形实在是太过离谱了)。当我尝试使用tableView.dequeueReusableCellWithIdentifier()从原型单元格创建一行时,它就会出现。 - sunetos
4个回答

19
在 iOS 8 中,你必须在 UITableView 的代理中指定一个高度:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 44.0;
}

iOS 7 及以前的版本中,接受默认设置。有关更多信息,请参见此链接


好知道!我曾尝试在Interface Builder中手动指定行高,但没有成功。我猜现在必须在代码中完成。 - sunetos

0

0

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

自动布局在beta2中似乎有很多问题。一旦关闭大小类别,神秘的“模糊可滚动内容”警告也会消失。

之后我能够重新打开大小类别和自动布局,灰色矩形仍然消失了,但是由于失去了大小类别信息,所有东西都错位了。这是一团糟。


我也遇到了“模糊可滚动内容”错误,并对此感到困惑。至于灰色框,我关闭了“自动布局”,灰色框消失了;但是,当我重新打开它时,框又出现了(与您的情况不同)。 - Connor

0

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

我不知道为什么会这样,但我猜测这与新的自适应表格行有关。是时候进行一些研究了 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接