我正在实现一个下载系统,并且我有这个表视图,其中包含来自Core数据的元素。
我希望用户按下单元上的下载按钮,系统将开始下载相关文件。
我的下载库可以通过委托方法来通信和报告进度,我的问题是我不知道如何在可重用单元中关联/正确地重新显示/更新进度视图。
下载库与NSURL一起工作,我可以子类NSURL并附加一个属性协议来表示我的核心数据实例,但是即使这样,按单元格保持UI更新的最佳方法是什么?
每次委托接收事件时,我是否都要调用[self.tableView reloadData]?
发布于 2013-08-20 22:35:02
对,这是个棘手的问题。正如您已经注意到的,当表被滚动时,单元对象将被重用,并且无法保证相同的单元对象将继续引用表的相同索引路径。
我建议查看一下tableView:willDisplayCell:forRowAtIndexPath:,在单元格即将显示之前在表视图委托上调用它。这将是在下载库中将此单元格设置为正确委托的好地方。
至于你的第二个问题,不,不要在每个事件上打电话给[self.tableView reloadData]。这将是一个破坏性能的决定。:)
https://stackoverflow.com/questions/18344959
复制相似问题