【问题标题】:How to reload custom cells forcefully in UICollectionView?如何在 UICollectionView 中强制重新加载自定义单元格?
【发布时间】:2017-02-22 11:21:44
【问题描述】:

UIViewController 中,我有一个UICollectionViewUICollectionViewCells 包含图表(Piecharts and Bar charts)。

图表的delegatesdatasourceUICollectionViewCell 中,viewdidload 本身从NSUserdefault 加载图表。

问题:

当新数据到来时,我们如何重新加载单元格。已经加载的单元格不会重新加载。它与旧数据保持不变。但是之前未加载的单元格正在加载新数据。我们如何使用来自NSuserdefault 的新数据强制重新加载完整的单元格。

【问题讨论】:

  • yourCollectionview.reloadData() 简单
  • 在调用 reload() 时。数据加载的单元格保持不变,因为图表数据源位于单元格子类中,并且不会用新数据重绘单元格。只是用旧数据保持旧平局
  • @Abbut John 在获取数据后在主线程上执行 collectionviewname.reloadData()。
  • 您使用的arraydictionary 用于UICollectionView,获取数据后只需删除其所有以前的值并分配新值并重新加载UICollectionView

标签: ios objective-c iphone uicollectionviewcell


【解决方案1】:

您只需获取要在其中重新加载单元格的数组索引。

[_collectionView performBatchUpdates:^{
    [_collectionView reloadItemsAtIndexPaths:@[[NSIndexPath x inSection:0]]];
} completion:^(BOOL finished) {}];

快乐编码:)

【讨论】:

    【解决方案2】:

    在collection view cell内设置picchart的数据源和delegate for index path处的行。

    【讨论】: