我正在实现一个下载系统,我有这个表视图,其中包含来自Core Data的元素。
我希望用户按下单元格上的下载按钮,系统将开始下载相关文件。
我的下载库可以通过委托方法进行通信和报告进度,我的问题是我不知道如何在可重用单元格中关联/正确地重新显示/更新进度视图。
下载库可以与NSURL一起使用,我可以继承NSURL并附加表示我的核心数据实例的属性协议,但即便如此,保持UI逐个单元更新的最佳方法是什么?
每次代表收到活动时,我都应该致电[self.tableView reloadData]
吗?
答案 0 :(得分:1)
正确,这是一个棘手的问题。正如您所注意到的,当表格滚动时,单元格对象将被重用,并且无法保证相同的单元格对象将继续引用表格的相同索引路径。
我建议看看tableView:willDisplayCell:forRowAtIndexPath:
在即将显示单元格之前,在表视图委托上调用它。这是将此单元格设置为下载库中正确委托的好地方。
关于你的第二个问题,不,不要在每个事件上致电[self.tableView reloadData]
。这将是一个表现破碎的决定。 :)