我正在使用GMGridView,这非常适合支持网格视图。但是我遇到了关于它使细胞出列的方式的问题。
我的应用的一些背景信息: 我有一个名为“ProductsGVC”的类,它提供属于某个“类别”的产品的网格视图。 ProductsGVC的数据模型是从“类别”实例中获取的一系列产品。
我的GMGridView一次创建250个单元格。当我加载每个单元格时,我有一个线程为每个单元格下载图像。在等待它完成下载时,我在单元格的图像视图中放置了一个默认图像。从逻辑上讲,下载单元格后,我想重新加载单元格来更新照片。我使用这段代码成功完成了这项工作:
//_currentData is my array of products
[_gmGridView reloadObjectAtIndex:[_currentData indexOfObject:product] animated:YES];
但是,如果更新了我的数组底部的单元格,则单元格会正确刷新,但单元格会消失。
我的低效解决方案是在单元格完成下载图像时随时调用[_gmGridView reloadData]
。结果是,我之前加载的细胞消失了。我猜他们已经出局并重复使用。好吧,当我从那些消失的细胞中滚动很多次时,它们会再次出现。
我的问题是,如何防止出现可见单元格(即当前在屏幕上的单元格)?
答案 0 :(得分:1)
如果你正在使用NSFetchResultsController,你可以尝试在https://github.com/gmoledina/GMGridView/issues/84中实现Rasmuth的答案。