【问题标题】:Reloading subview (UICollectionview)重新加载子视图(UICollectionview)
【发布时间】:2012-12-19 22:51:56
【问题描述】:

在我的 ViewController 中,我有四个子视图,即 UITableView、UICollectionView、带有 UILabel 的视图和显示该项目预览图像的视图。

通过在 tableview 中选择一行,我可以更改预览图像和所有标签。但是我无法刷新 UICollectionView 数据。我尝试了this 解决方案,但它只是删除并添加了视图,并且更改了布局和预览图像消失了。

我想要做的就是刷新 UICollectionView 的内容。有没有更简单的方法来做到这一点?

【问题讨论】:

    标签: objective-c ios uicollectionview


    【解决方案1】:

    你试过[self.collectionView reloadData];吗?

    【讨论】:

      【解决方案2】:

      要仅刷新 UICollectionView 的一部分,您也可以这样调用:

      [self.collectionView reloadItemsAtIndexPaths:@[indexPath]]
      

      其中 indexPath 是您要重新加载的单元格。您也可以在数组中包含多个索引路径。要重新加载整个第一部分,您可以这样称呼:

      NSIndexSet *sections = [NSIndexSet indexSetWithIndex:0];
      [self.collectionView reloadSections:sections];
      

      【讨论】:

        【解决方案3】:

        假设您已正确地将您的 UICollectionView 连接到数据源 (UICollectionViewDataSource),您可以调用 [myCollectionView reloadData] 让您的集合视图调用您的数据源的方法(如下)以刷新自身:

        – collectionView:numberOfItemsInSection:
        – numberOfSectionsInCollectionView:
        – collectionView:cellForItemAtIndexPath:
        – collectionView:viewForSupplementaryElementOfKind:atIndexPath:
        

        【讨论】:

        • 嘿,汤米。是的,一切都很好,我可以在第一次加载 VC 时在 UICollectionView 中加载数据。仅当我尝试从该 ViewController 中更改项目时,它才不起作用。但它适用于以下解决方案。即[self.collectionView reloadData];。谢谢..
        猜你喜欢
        • 2018-02-21
        • 1970-01-01
        • 1970-01-01
        • 2021-10-23
        • 2021-09-30
        • 2015-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多