iOS 7 上的分组 UITableView 故障

Posted

技术标签:

【中文标题】iOS 7 上的分组 UITableView 故障【英文标题】:Grouped UITableView glitch on iOS 7 【发布时间】:2013-10-22 15:51:50 【问题描述】:

我在 Xcode4.6 中构建我的应用程序并在装有 ios7 的 iPod5 上运行它。

表格视图是分组的,所有单元格都是标准的。表处于一个部分的编辑模式。 处于编辑模式的单元格有一个非常奇怪的故障。问题显示在屏幕截图上(有故障和正常)。

这个“东西”只出现片刻,我只能在 viewDidAppear 的 dispatch_async 中捕捉到它。然后过了一会儿它自己消失了,一切都恢复正常了(cellForRowAtIndexPath,单元格中的 layoutSubviews 没有被调用,我没有重新加载表格! - 最奇怪的事情)。

我的表格和单元格非常复杂,但我深入挖掘并删除了所有不相关的视图。 这里的表是透明的,红色是它后面视图的颜色。 我已将 cell.contentView.alpha 设置为零(我的所有视图都添加到其中),并且单元格本身是绿色的。 我尝试了cell.alpha = 0,在这种情况下,单元格没有显示并且没有故障,所以肯定是单元格的问题。

请写下任何建议,我的想法用完了。谢谢。

UPD。看来这只发生在编辑模式下。如果我不将其设置为 YES,则一切正常。 UPD 2. 调用[table setEditing:YES] 时出现故障。如果动画,它表明这个东西扩大到一个单元格的正常宽度并变得正常。 我开始认为这是无法解决的(显然 Apple 不会修复它)

【问题讨论】:

我猜是动画。 尝试检查: 1. UIImage 渲染模式 2. UIEdgeInsets 指定用于拉伸背景图像。我认为这两件事都可能有问题 它看起来像一个动画,在每一帧之后都没有正确清除其缓冲区。很难确切地说出哪里出了问题。如果您能提供一些代码,我很乐意帮助您解决问题。 为什么viewDidAppear中需要dispatch_async?这可能是导致此故障的原因。 使用 viewWillAppear 重新加载表格。这可能会解决故障问题。 【参考方案1】:

自从我提出这个问题后,我在 AppStore 中的许多 iOS6 应用程序中都注意到了这个错误。 我认为这是基于 Xcode4 构建的 iOS6 应用程序的错误,这些应用程序在 iOS7 上以兼容模式运行。

我不再使用 Xcode4,我的应用也不支持 iOS6。

所以这个问题既不相关也不值得解决。

【讨论】:

以上是关于iOS 7 上的分组 UITableView 故障的主要内容,如果未能解决你的问题,请参考以下文章

IOS 7:从分组样式 UITableView 的一部分中删除边框

如何在 iPad 上的 iOS 7 上的 UITableView 单元格右侧绘制图像?

在 iOS5 故事板中使用静态和动态内容分组 UITableView

iOS 7 上的 -[UITableView layoutSublayersOfLayer:] 中的断言失败

在 iOS 7 上的 UITableView 上指示加载活动的正确方法是啥?

iOS 7 中的 UITableView 分隔符颜色是啥?