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

Posted

技术标签:

【中文标题】UICollectionView 无法折叠或移除补充视图【英文标题】:UICollectionView can't collapse or remove supplementary view 【发布时间】:2014-06-16 18:21:42 【问题描述】:

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

我刚刚进行了测试。我认为它与使用 UIDynamics 有关,UIDynamics 中的什么内容会覆盖我对标题部分参考大小的委托响应?

【问题讨论】:

同样的问题...考虑将补充视图移动到集合视图单元格。 【参考方案1】:

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

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

那么当你需要更新布局调用时:

[collectionView.collectionViewLayout invalidateLayout];

collection view 会向 Layout 对象询问新的信息,然后再询问你的委托。我相信它也会激发变化。

【讨论】:

在 9.2.1 上不为我制作动画

以上是关于UICollectionView 无法折叠或移除补充视图的主要内容,如果未能解决你的问题,请参考以下文章

vc检测USB设备插入或移除

无法从 jQuery mobile 可折叠设备中移除蓝色光晕

用jq添加或移除div

自定义 flex MenuBar 或移除悬停效果

jQuery同时添加或移除多个class类名

无需重启 在Linux下热添加或移除SCSI硬盘