Ios UICollectionView引用SizeForHeaderInstruction动画

Ios UICollectionView引用SizeForHeaderInstruction动画,ios,swift,uicollectionview,Ios,Swift,Uicollectionview,是否可以设置UICollectionView标题(也称为UICollectionElementKindSectionHeader)大小更改的帧更改动画 换句话说,我希望我的UICollectionView标题有两种不同的可能帧,一种是展开(更大的高度)模式,另一种是折叠模式(更小的高度)。通过点击某个按钮,我希望标题可以通过自定义动画在展开和收拢模式之间切换 当前我已将其设置为: func collectionView(_ collectionView: UICollectionView, la

是否可以设置UICollectionView标题(也称为
UICollectionElementKindSectionHeader
)大小更改的帧更改动画

换句话说,我希望我的UICollectionView标题有两种不同的可能帧,一种是展开(更大的高度)模式,另一种是折叠模式(更小的高度)。通过点击某个按钮,我希望标题可以通过自定义动画在展开和收拢模式之间切换

当前我已将其设置为:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
    return CGSize(width: 0, height: HEADER_HEIGHT)
}
在这里,我通过点击按钮调用此函数来更改集合视图高度

HEADER_HEIGHT = HEADER_HEIGHT == 100 ? 200 : 100
self.collectionView?.collectionViewLayout.invalidateLayout()

这是可行的,但我还没有找到有关设置帧更改动画的文档。这可能吗?

您可以在UIView的动画块中调用任何可设置动画的视图更改:

    UIView.animate(withDuration: 0.5) {
        self.collectionView?.collectionViewLayout.invalidateLayout()
    }

您的问题似乎与类似,但不幸的是,没有人回答。这似乎能够为标题的
contentView
设置动画,但似乎无法为标题视图的大小设置动画?