我看到另一个UITableView单元格在滚动时意外消失,但没有类似的问题&这里的答案我看到的确非常适合我所看到的:
我向下滚动,直到我的顶部单元格被移除并为其调用tableView:didEndDisplayingCell:forRowAtIndexPath:
,然后向上滚动直到它再次显示。在向上滚动期间,tableview正在尝试删除向下滚动时显示的单元格,但它实际上删除了错误的单元格。
当我向上滚动时,tableView:didEndDisplayingCell:forRowAtIndexPath:
正在使用正确的索引路径调用,它应该删除一个,但是一个对应于不同索引路径的单元格。传递给didEndDisplayingCell
的单元格和索引路径不匹配。
这是对https://github.com/xmartlabs/XLForm的XLForm示例项目的一个小修改,其中我添加了一个自定义单元格。奇怪的是,如果我使自定义单元格的高度与表格的正常高度相同(44),那么就不会发生这种情况。仅当我的单元格较高时(64,从tableView:heightForRowAtIndexPath:
和tableView:estimatedHeightForRowAtIndexPath:
返回此值)。
我在模拟器iOS版本8.4和9.2中运行时会看到这种情况。
我无法弄清楚这一点。我不认为我有任何导致其他人消失细胞综合症的错误,但即使我这样做,我也看不出tableview如何或为什么用单元格和索引路径调用didEndDisplayingCell
那不匹配。有没有其他人知道发生了什么?