动画切换CollectionViewLayout

时间:2019-03-13 09:55:36

标签: ios swift uicollectionview uicollectionviewlayout

我目前正在开发一种功能,可以在CollectionViewLayouts的2个不同的UICollectionView之间切换。切换效果非常好,布局使用相同的单元格类别和不同的笔尖。我希望他们通过动画(网格样式到列表样式以及返回)从一个移动到另一个。目前,我已经使用Hero过渡框架集成了一些动画。

我想要实现的是在列表和网格布局中都存在的图像,以使其成为新的原点动画,从而使交易看起来很顺畅。

使用Hero是否可以实现我想要的行为?在选择效果最佳的单元格时,我已向其添加了动画。

这是我用来在两种布局之间切换的代码

isListView = !isListView
setupCollectionViewCellNib(nibName: collectionItem)
collectionView.collectionViewLayout = isListView ? ListLayout(view: view) : GridLayout(view: view)
collectionView.reloadData()

我希望即使使用Hero无法达到目标,也能将我指向正确的方向。

1 个答案:

答案 0 :(得分:0)

UICollectionView具有setCollectionViewLayout(_ layout: UICollectionViewLayout, animated: Bool)功能

let layout = isListView ? ListLayout(view: view) : GridLayout(view: view)
collectionView.setCollectionViewLayout(layout, animated: true)