UICollectionView performBatchUpdates同时插入,删除和移动
我正在尝试使用UICollectionView
的performBatchUpdates
方法来执行过滤操作(sorta),并在块中插入单元格,移动单元格和删除单元格。 我得到了一些奇怪的结果,所以我想知道这个行为是否真的被支持(我正在弄清楚这些行为是不是都搞砸了)。 我是否需要将每个“types”的动作(插入,移动和删除)分成独立的块?
performBatchUpdates
内的所有操作都是针对当前索引执行的。 所以,不,你不应该分解插入/删除/移动到不同的块,这正是performBatchUpdates
是什么。 没有一些代码或古怪的描述,你会看到很难帮助…
刚刚find这个答案寻找各种操作的顺序,并认为我会分享我已经发现有关节插入/删除时,加上删除项目插入(不移动)。 我正在过滤一个UICollectionView
并在事物变空时删除单元格/部分,并在清除search时重新填充它们。 我基本上是用arrays来支持它的。
我发现我需要在删除要从数据源中删除的部分之前,使用行和部分索引来计算已删除的项目。 (前段删除)
然后删除数据源中的部分并存储这些索引以删除。
然后插入任何新的部分/如果需要sorting/并跟踪所有插入部分。
最后根据新的部分索引计算插入的行。
Deleted Sections: (pre deleted index) Inserted Sections: (indexes after deleting the deleted sections and adding these back in) Deleted Rows: (row, pre-deleted section) Inserted rows: (row, section based on index after inserting new sections)
这是与iOS 9。