如何在 UICollectionView 中强制重新加载自定义单元格?
Posted
技术标签:
【中文标题】如何在 UICollectionView 中强制重新加载自定义单元格?【英文标题】:How to reload custom cells forcefully in UICollectionView? 【发布时间】:2017-02-22 11:21:44 【问题描述】:在UIViewController
中,我有一个UICollectionView
和UICollectionViewCells
包含图表(Piecharts and Bar charts)。
图表的delegates
和datasource
在UICollectionViewCell
中,viewdidload
本身从NSUserdefault
加载图表。
问题:
当新数据到来时,我们如何重新加载单元格。已经加载的单元格不会重新加载。它与旧数据保持不变。但是之前未加载的单元格正在加载新数据。我们如何使用来自NSuserdefault
的新数据强制重新加载完整的单元格。
【问题讨论】:
yourCollectionview.reloadData() 简单 在调用 reload() 时。数据加载的单元格保持不变,因为图表数据源位于单元格子类中,并且不会用新数据重绘单元格。只是用旧数据保持旧平局 @Abbut John 在获取数据后在主线程上执行 collectionviewname.reloadData()。 您使用的array
或dictionary
用于UICollectionView
,获取数据后只需删除其所有以前的值并分配新值并重新加载UICollectionView
【参考方案1】:
您只需获取要在其中重新加载单元格的数组索引。
[_collectionView performBatchUpdates:^
[_collectionView reloadItemsAtIndexPaths:@[[NSIndexPath x inSection:0]]];
completion:^(BOOL finished) ];
快乐编码:)
【讨论】:
【参考方案2】:在collection view cell内设置picchart的数据源和delegate for index path处的行。
【讨论】:
以上是关于如何在 UICollectionView 中强制重新加载自定义单元格?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 UICollectionView 在 Pages 中重新创建重命名动画?