如何使用 Swift 为 UICollectionView 插入动画?

Posted

技术标签:

【中文标题】如何使用 Swift 为 UICollectionView 插入动画?【英文标题】:How do I animate UICollectionView insert with Swift? 【发布时间】:2016-11-01 13:52:26 【问题描述】:

我已经用collectionView.reloadData() 尝试过,但并没有真正奏效。我该怎么办?

【问题讨论】:

不知何故,您应该使用insertItems(at:) 方法。由于没有代码 sn-p,即这是一个通用问题,我建议检查 this article -Insert Cell 部分 - 以检查您如何使用它。 您的评论应该就是答案。 【参考方案1】:

如果您的收藏视图只有一个部分,请尝试:

self.collectionView.performBatchUpdates(
                let indexSet = IndexSet(integersIn: 0...0)
                self.collectionView.reloadSections(indexSet)
            , completion: nil)

见于:https://***.com/a/42001389/4455570

【讨论】:

【参考方案2】:

reloadData 不会改变布局或动画。 您必须更改项目的位置,例如:

func shuffleTwoCells(srcIndex index1: Int, destIndex index2: Int) 
    let firstIndexPath  = IndexPath(row: Int(index1), section: 0)
    let secondIndexPath = IndexPath(row: Int(index2), section: 0)
    self.collectionView?.moveItem(at: firstIndexPath, to: secondIndexPath)

【讨论】:

但那是交换两个,而不是插入一个新的,是吗?

以上是关于如何使用 Swift 为 UICollectionView 插入动画?的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 如果项目滚动一点,UICollection 快速恢复

Table Cell 中的 UICollection 视图在 Swift 3 中不显示图像

如何在 UICollection 补充视图中使用 UIButton?

如何使用装饰器视图在 uicollection 视图中实现所需的设计

如何使用Swift 4将数据从Pop-Over子视图传递到View Controller

理解 UICollection Flow Layout 流式布局