UICollectionView 的 deleteSections() 动画
Posted
技术标签:
【中文标题】UICollectionView 的 deleteSections() 动画【英文标题】:Animate deleteSections() of UICollectionView 【发布时间】:2018-05-22 16:17:22 【问题描述】:我有一个使用流式布局的UICollectionView
。它有两个部分。根据一些用户输入,我将单元格从第一部分移动到第二部分。为了使这个变化动起来,我使用了下面的代码:
let oldIndexPath = self.indexPathForAsset(asset)
self.collectionView.performBatchUpdates(
//change data source
let newIndexPath = self.indexPathForAsset(asset)
self.collectionView.moveItem(at: oldIndexPath, to: newIndexPath)
if self.numberOfCollectionViewSections() == 1
self.collectionView.deleteSections([0])
, completion: nil)
单元格从第一秒到第二秒动画效果很好,除了最后一个。当最后一个单元格被移动时,我删除了该部分,deleteSections
没有动画。另外,如果我将完成块传递给performBatchUpdates
,它不会被调用。
如何将最后一个单元格移动到第二部分并删除第一部分?
【问题讨论】:
嗨,我注意到你确实提到了未调用完成块。我还注意到发生了这种情况(未调用完成块),尤其是当我们在performBatchUpdates
中执行部分关系操作时。我想知道,你有办法解决这个问题吗?谢谢。
【参考方案1】:
UIView.animate(withDuration: 4)
self.collectionView.moveItem(at: oldIndexPath, to: newIndexPath)
尝试这样做
【讨论】:
以上是关于UICollectionView 的 deleteSections() 动画的主要内容,如果未能解决你的问题,请参考以下文章
将标题添加到 UICollectionView,而不是 UICollectionView 的部分
检测位于另一个 uicollectionview 内的 uicollectionView 的哪个 UICollectionViewCell 位于中心
UITableviewCell 中的 UICollectionView。添加约束后,UICollectionView 不显示
无法在 uicollectionview、UICollectionView 的特定 indexPath.row 处为单元格设置标题