UICollectionView。如何在幕后插入新项目?
Posted
技术标签:
【中文标题】UICollectionView。如何在幕后插入新项目?【英文标题】:UICollectionView. How to insert new items behind the scene? 【发布时间】:2013-07-11 09:10:12 【问题描述】:我有一个包含一行的 collectionView。在开始时出于性能目的,我只加载部分项目并滚动(让它成为)到第 30 个项目。然后我在开头插入其余项目(可以是一百个),集合视图切换到新的 6 个元素不停留上旧。我尝试在插入完成时使用 scrollToItemAtIndexPath ,但它首先显示新项目,然后切换到旧项目。
如何在幕后插入新项目?我的意思是,如果没有更新且所有项目始终存在,我的意思是强制 collectionView 以这种方式行事?
- (void)addDateStorage
NSDate* currentPastDate = [dateStorage objectAtIndex:0];
NSMutableArray* indexPathes = [NSMutableArray array];
for(int i=0; i<DAYS_IN_YEAR; i++)
[dateStorage insertObject:currentPastDate atIndex:0];
currentPastDate = [currentPastDate dateByAddingTimeInterval:SECONDS_IN_DAY*(-1)];
[indexPathes addObject:[NSIndexPath indexPathForRow:i inSection:0]];
[self.calendar insertItemsAtIndexPaths:indexPathes];
我尝试使用 performBatchUpdates: 和 reloadData,但结果相同。
【问题讨论】:
【参考方案1】:首先,您需要修改模型(加载更多元素)。
其次,告诉你的collectionView重新加载数据(它应该看到更新的元素数量并且仍然只显示当前可见的元素)并且不需要滚动。
【讨论】:
以上是关于UICollectionView。如何在幕后插入新项目?的主要内容,如果未能解决你的问题,请参考以下文章
将新数据插入核心数据存储时如何使 UICollectionView 始终位于底部
如何向 UICollectionView 动态添加新单元格?
如何以编程方式在 uicollectionview 中插入图像?
iOS - 如何在将单元格动态插入 UICollectionView 之前正确重新加载单元格