ios - 动画切换 CollectionViewLayout

标签 ios swift uicollectionview uicollectionviewlayout

我目前正在开发一种功能,可以在 UICollectionView 的 2 个不同 CollectionViewLayouts 之间进行切换。切换工作得很好,布局使用相同的单元类别和不同的 Nib 。我希望它们通过动画从一种移动到另一种(网格样式到列表样式然后返回)。目前我已经使用 Hero 过渡框架集成了一些动画。

我想要实现的是列表和网格布局中存在的图像以动画方式呈现到新的原点,以便事务看起来顺利。

是否可以通过 Hero 实现我想要的行为?当选择哪个效果很好时,我已向单元格添加了动画。

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

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

我希望有人能够为我指明正确的方向,即使使用 Hero 无法实现这一点。

最佳答案

UICollectionView有一个setCollectionViewLayout(_layout: UICollectionViewLayout,animated:Bool)函数

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

关于ios - 动画切换 CollectionViewLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55138925/

相关文章:

ios - iOS 10 中的深层链接不起作用

iphone - 返回 UIButton 控制 UINavigationController

ios - 我如何从 while 循环中获取数据

swift - TableView 单元格内部 Collection View 单元格的索引路径

ios - 如何将选定的表格 View 单元格文本发送到 iOS 中的上一个 View Controller ,Objective C(向后传递数据)

ios - URL初始化(字符串:relativeTo:) works wrong

json - 尝试从结构中获取 "variable"但当我尝试时它说结构没有成员 "variable"

swift - ARKIT 扫描仪未构建

ios - 在 UICollectionView 中隐藏搜索栏

ios - 将设备旋转为横向时的 UICollectionViewFlowLayout 大小警告