1

我有一个关于 UITableViewCell 和 UICollectionviewCell 的一般性问题。

我需要为每个单元格下载一个文件,所以我在创建单元格时创建了一个后台操作,但是用户可以滚动 tableview/collectionview 以便可以为其他行回收一个单元格。

我可以中断“prepareForreuse”方法中的后台操作,但这有点烦人,因为如果操作达到 99%,您需要重新开始下载。所以我决定维护后台进程,但我需要一种方法来“识别”当 backgorund 线程结束时,单元格与它开始时不同。

抱歉,如果问题不是很清楚。

谢谢

4

2 回答 2

1

我认为这不是最好的方法,将后台任务与单元格链接,然后处理重用。

您应该在创建单元格时创建任务,并使用索引路径来确定哪个单元格应该处理任务的结果。

这样,您不会杀死任何任务,并且您还可以检查您的任务是否已完成,这样您就不会在用户滚动表格视图时重新开始。

于 2013-07-11T15:01:43.273 回答
0

您能否提供有关如何执行后台操作以及如何通知单元其完成的详细信息?(代码!)

编辑:

您还可以使用单例来管理所有后台操作,为每个单元分配一个唯一标识符,以便操作是唯一的。然后继续检查 cellForRowAtIndexPath: 是否在后台管理器中存在具有单元标识符的项目,然后检查其内容。是的,标识符可以是 indexPath,正如 danypata 所说(其他答案)

于 2013-07-11T14:55:24.833 回答