将UICollectionView中的所有项目替换为一个项目(合并单元格)

时间:2013-10-04 00:44:20

标签: ios objective-c uicollectionview

我有一个使用流布局和部分的集合视图。 在一些用户操作中,我需要用一个新项替换特定部分中的所有项并为该更改设置动画(我希望我能够使用交互式转换)。 基本上 - 部分中的单元格应合并为具有动画的单个单元格。这可以通过使用2种不同的布局和自定义过渡类来实现吗?任何人都可以提供有关如何做得更好的建议吗?

1 个答案:

答案 0 :(得分:0)

好的,也许在问这个问题之前我应该​​阅读更多关于UICollectionViews的内容。 我设法通过使用这个算法

达到了预期的效果
  1. 将旧的部分数据数组复制到某个临时数组
  2. 将数据源中的旧节数据替换为只包含一个所需对象的新数组。
  3. 致电[_collectionView performBatchUpdates:^{}并在该区块内查看此部分中的所有现有项目并致电[_collectionView deleteItemsAtIndexPaths:itemsToRemove];
  4. 致电[_collectionView insertItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:0 inSection:indexPath.section]]];
  5. 致电[_collectionView reloadSections:[NSIndexSet indexSetWithIndex:indexPath.section]];
  6. 然后,如果我需要恢复部分,我需要重复这些步骤,但是将数据源中的部分替换为具有原始数据的临时数组,删除单个现有项目(单元格)并将所有项目(单元格)插入到部分。