2013-11-15 52 views
3

我有一个基本的UICollectionView和项目的基本列表。我已经在项目上实现了删除按钮,以便用户可以删除其中的一些。除了物品正在被删除时的重新排列之外,一切都很好。UICollection视图删除项目重新排列奇怪的动画

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

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

的问题是:

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

回答

2

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

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