UICollectionview删除项目重新排列奇怪的动画

Posted

技术标签:

【中文标题】UICollectionview删除项目重新排列奇怪的动画【英文标题】:UICollection view delete item rearrangement weird animation 【发布时间】:2013-11-15 10:40:36 【问题描述】:

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

如果您删除项目 N-1,它会在视觉上删除列表中的第一个,将最后一个移动到第一个位置并“重用所有单元格”以设置正确的内容。

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

问题是:

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

【问题讨论】:

【参考方案1】:

我发现了问题所在。碰巧我在deleteItemAtIndexPath之后发布了一个通知,它实际上正在调用一个正在调用collectionView reloadData的setter。这个 reloadData 在这个阶段不应该被调用,所以我修复了它,它就像一个魅力。

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

【讨论】:

以上是关于UICollectionview删除项目重新排列奇怪的动画的主要内容,如果未能解决你的问题,请参考以下文章

如何在锁定其中一些单元格时重新排序 UICollectionView 单元格

无法通过移动它们来重新排列 UICollectionView 中的单元格?

在出现之前重新加载 UICollectionView 而不让用户看到更改

如果项目未移动,是不是有方法检查 UICollectionView 项目拖动取消?

UICollectionView:重新加载数据,不删除单元内动画

重新排序 UICollectionView 的单元格