如何重装UICollectionView的唯一的数据段?(How to reload only da

2019-08-08 08:54发布

我试图重新加载的数据段中,没有页眉或页脚(补充视图),UICollectionView的。

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

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

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

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

但它使运行时错误时,方法被调用。 错误的内容是:

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

是方法reloadSections:不允许使用这样? 有没有重新加载的数据段中,没有页眉或页脚部分任何其他方式?

Answer 1:

我认为,只有当搜索栏是一家集视图的子视图,并试图调用发生错误reloadSections:当键盘输入是向上。

本文给出了一个回答类似的问题,但并没有为我工作。

所以我用,我可以调用几乎相同功能的另一种方式。

代替将报头作为辅助视图的,我提出的标题“视图”的子视图。 (没有的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];
    }  
} 


文章来源: How to reload only data section of UICollectionView?