【问题标题】:Animate switching CollectionViewLayout动画切换 CollectionViewLayout
【发布时间】:2019-03-13 09:55:36
【问题描述】:

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

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

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

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

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

我希望有人能指出我正确的方向,即使使用 Hero 无法做到这一点。

【问题讨论】:

    标签: ios swift uicollectionview uicollectionviewlayout


    【解决方案1】:

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

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

    【讨论】:

    • 这不会更新用于显示单元格的笔尖。因此,它会在某种程度上对其进行动画处理,最终的布局是错误的。即使打电话给reloadData()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 2012-03-11
    • 2010-10-30
    • 2013-08-05
    • 1970-01-01
    • 2011-09-13
    • 2016-09-26
    相关资源
    最近更新 更多