UICollectionView无法折叠或删除补充视图

nap*_*aza 6 ipad ios uicollectionview

我有一个使用流布局的uicollectionview,它有一个补充的标题视图,这是我有时只想显示的视图.所以基本上我想要一个按钮,当点击它时,将从集合视图中删除补充视图,并重新放置集合视图中的所有项目,同时考虑标题已消失.这可能吗?我在很多方面都反复尝试过.更改引用标头大小,更改我对标题大小的委托方法的答案,使布局无效,重新加载数据等等.我缺少什么?

我刚刚参加了测试.我认为它与使用UIDynamics有关,UIDynamics中的什么会覆盖我的头部分参考大小的委托响应?

kba*_*all 5

在您的委托的布局方法中,为您感兴趣的任何州返回适当的大小:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
    if (self.headerVisble) {
        return CGSizeMake(collectionView.bounds.size.width, 30.0f);
    }
    else {
        return CGSizeZero;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,当您需要更新布局调用时:

[collectionView.collectionViewLayout invalidateLayout];
Run Code Online (Sandbox Code Playgroud)

集合视图将向Layout对象询问新信息,然后再询问您的代理人.我相信它也会改变这种变化.

  • 在9.2.1上没有为我制作动画 (2认同)