重新加载子视图(UICollectionview)

Posted

技术标签:

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

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

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

我想要做的就是刷新 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];。谢谢..

以上是关于重新加载子视图(UICollectionview)的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中重新加载子视图

UIViewcontroller 不加载子视图(swift 3)

在 IPython 中重新加载子模块

如何获取 UINavigationController 子视图

VUE+Element首次打开Dialog加载子组件数据未渲染(不显示)

使用 invalidationContext 重新加载 UICollectionView 的补充视图(标题)时遇到问题