如何重新加载只有UICollectionView的数据部分?

我试图重新加载只有数据部分,而不是页眉或页脚(补充视图),UICollectionView。

当我使用reloadData方法,页眉和页脚部分也重新加载,所以这就是我想要的。

我发现了方法reloadSections:但我不知道为什么它不工作。

因为我的集合视图只包含一个部分,所以我尝试使用这样的方法:

 [collectionViewController.collectionView reloadSections:[NSIndexSet indexSetWithIndex:0]]; 

但是当方法被调用时,会导致运行时错误。 错误的内容是:

 'NSInvalidArgumentException', reason: '-[UICollectionViewUpdateItem action]: unrecognized selector sent to instance 0x90aec00' 

方法reloadSections:是不是可以这样使用? 有没有其他的方法来重新加载只有数据部分,而不是页眉或页脚部分?

我认为错误只发生在search栏是一个集合视图的子视图,并试图调用reloadSections:当键盘input启动。

本文给出了一个类似的问题的答案,但这并不适用于我。

所以我用另一种方式来调用几乎相同的function。

我没有添加标题作为补充视图,而是将标题作为“视图”的子视图。 (不是collectionView)

并添加了一些滚动委托模仿表视图的标题。

 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat y = scrollView.contentOffset.y; if (y < 44) { [self.searchBar setFrame:CGRectMake(0, -y, 320, 44)]; [self.searchBar setHidden:NO]; } else if (y >= 44) { [self.searchBar setHidden:YES]; } }