3

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

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

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

4

3 回答 3

7

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

于 2012-12-19T22:55:12.717 回答
1

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

[self.collectionView reloadItemsAtIndexPaths:@[indexPath]]

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

NSIndexSet *sections = [NSIndexSet indexSetWithIndex:0];
[self.collectionView reloadSections:sections];
于 2012-12-19T23:07:57.457 回答
0

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

– collectionView:numberOfItemsInSection:
– numberOfSectionsInCollectionView:
– collectionView:cellForItemAtIndexPath:
– collectionView:viewForSupplementaryElementOfKind:atIndexPath:
于 2012-12-19T22:58:44.507 回答