0

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

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

1) data-redorder,意思是直接从获取请求。我不确定这可能吗?在呈现给 UICollectionViewDataSource 委托之前,是否有一个 CD 陷阱允许重新排序获取结果?

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

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

4) 下载一大块数据,简单地使用内置的核心数据故障机制。但这低于最佳值,因为我不确定我应该下载多少 - 取决于用户 - 初始请求(JSON+核心数据)可能需要太长时间。这就是为什么懒惰的获取仍然存在的原因。

遇到同样问题的人有什么建议可以分享吗?

谢谢 !

4

0 回答 0