UICollection视图删除项目重新排列奇怪的动画



我有一个基本的UICollectionView和一个基本的项目列表。我在项目上实现了删除按钮,以便用户可以删除其中一些。除了删除项目时的项目重新排列之外,一切都很好。

如果删除项目 N-1,它将直观地删除列表中的第一个,将最后一个移动到第一个位置,并"重用所有单元格"以设置正确的内容。

基本上,我本来希望它将最后一个移动到 N-1 项目。注意:当我有一行和 2 个项目时,就会发生这种预期行为,这让我相信我以某种方式做对了事情。

问题是:

  • 这是删除对象时集合视图的标准行为吗?
  • 如何在不重写整个事情的情况下快速修复它?

我想出了问题所在。碰巧我在 deleteItemAtIndexPath 之后发布了一个通知,它实际上是在调用一个调用 collectionView reloadData 的 setter。这个重新加载数据不应该在这个阶段被调用,所以我修复了它,它就像一个魅力。

因此,如果您有有趣的动画,请确保您不会以某种方式调用 reloadData。

最新更新