我正在尝试动态更新UITableView
中的单元格。事件由后台线程接收的数据触发,因此一切都是异步的,并且无法预测事件的顺序。
在这种情况下,我不确定工作流程应该是什么。调用reloadRowsAtIndexPaths:withRowAnimation
时,如何确保行计数和索引路径正确?之前对deleteRowsAtIndexPaths:withRowAnimation
的调用仍然可以进行动画制作。
如果所有更改同时发生,我可以使用beginUpdates
和endUpdates
,但在上述情况下我该怎么办?
答案 0 :(得分:1)
Hanno,我建议使用命令对象模型对主线程上的更改进行排队。
以下是:
计时器和animationDidFinish回调的混合应该这样做。
答案 1 :(得分:0)
因为你必须在主线程中进行所有表更新(因为必须在主线程上调用UIKit),所以我在这里看不到并发问题。每当您收到新数据时,请在更新表的主线程上调用方法。此方法将阻止主线程,直到它完成。这应该确保表视图保持其完整性。
或者您是否担心重叠行动画?