是否可以为 UICollectionView header (也称为 UICollectionElementKindSectionHeader
)大小更改的帧更改设置动画?
换句话说,我希望我的 UICollectionView 标题有两个不同的可能框架,展开(较大的高度)和折叠模式(较小的高度)。通过在某处点击一个按钮,我希望标题在带有自定义动画的展开和折叠模式之间切换。
目前我把它设置成这样:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
return CGSize(width: 0, height: HEADER_HEIGHT)
}
我通过点击按钮调用此函数来更改 Collection View 高度
HEADER_HEIGHT = HEADER_HEIGHT == 100 ? 200 : 100
self.collectionView?.collectionViewLayout.invalidateLayout()
这行得通,但我还没有找到关于动画帧变化的文档。这可能吗?
最佳答案
您可以通过在 UIView 的动画 block 中调用它们来为任何可动画的 View 更改设置动画:
UIView.animate(withDuration: 0.5) {
self.collectionView?.collectionViewLayout.invalidateLayout()
}
关于ios - UICollectionView referenceSizeForHeaderInSection 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42683863/