UIcollectionViewCells的数据排序和更新。这是一个失败的原因吗?

时间:2012-12-16 12:14:48

标签: ios core-data ios6 uicollectionview

我有一个核心数据条目显示在collectionView中,从1 2 3 ... n排序。当用户翻阅前n个时,会添加新批次的条目。数据是从Web服务器获得的JSON响应构建的。

由于获取请求的第一个条目与单元格0相关联 - 通过数据源委托 - ,因此无法在集合视图的底部添加新批处理。如果它是从单元格0添加的,则旧单元格内容将被新单元格替换,或者简言之,整个页面似乎被新内容替换,并且用户正在查看的数据被新条目的数量所抵消。如果批量很大,它就会被埋没。此外,如果更新是从单元格0完成的,则所有条目都可见,这需要时间和内存。 我考虑了几种选择:

1)数据红色,意味着不是将获取结果作为1 2 3 4 ... n,而是需要相反的,n ... 3 2 1(与使用逆序排序的提取无关)直接来自获取请求。我不确定这是可能的吗?是否有CD问题允许在将提取结果呈现给UICollectionViewDataSource委托之前对其进行重新排序?

2)更改“collectionView cellForItemAtIndexPath:”中的索引路径/ viewCell关联,使用(numberOfItemsInSection - IndexPath.Item)。它创建了几个边缘情况,因为可以在视图中删除/更新条目(因此numberOfItemsInSection更改)。所以如果我能,我宁愿避免它......

3)从单元格0添加新数据,排除了我解释的原因。可能有一个解决方案:有没有人通过设置视图偏移来获得满意的结果?例如,如果添加了20个新条目,则单元格0的内容被移动到单元格20.因此,我们只需要告知视图控制器从单元格20开始显示。我可能会想到任何图像翻转或副作用吗?

4)下载大量数据,并简单地使用内置的核心数据故障机制。但这低于最优,因为我不确定我应该下载多少 - 用户依赖 - 而初始请求(JSON +核心数据)可能需要太长时间。这就是为什么懒惰的提取无论如何都在这里。

任何有同样问题的人都可以分享?

谢谢!

0 个答案:

没有答案