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:] 中的断言失败