我正在使用GMGridView ,它非常适合支持网格视图。但是我遇到了关于它使细胞出队的方式的问题。
我的应用程序的一些背景信息:我有一个名为“ProductsGVC”的类,它呈现属于某个“类别”的产品的网格视图。ProductsGVC 的数据模型是从“类别”实例中获取的产品数组。
我的 GMGridView 一次创建 250 个单元格。当我加载每个单元格时,我有一个线程为每个单元格下载图像。在等待它完成下载的同时,我在单元格的图像视图中放置了一个默认图像。从逻辑上讲,下载单元格后,我想重新加载单元格以更新照片。我使用以下代码成功地做到了这一点:
//_currentData is my array of products
[_gmGridView reloadObjectAtIndex:[_currentData indexOfObject:product] animated:YES];
但是,如果我的数组底部的 a 单元格被更新,则单元格会正确刷新,但 1 个单元格会消失。
[_gmGridView reloadData]
我的低效解决方案是在单元完成下载其图像的任何时候调用。结果是,我之前加载的单元格消失了。我猜他们的出队和重用。好吧,当我从那些消失的单元格中滚动多次时,它们确实会再次出现。
我的问题是,如何防止可见单元格(即当前在屏幕上的单元格)出列?