2

我正在尝试使用UICollectionView'sperformBatchUpdates方法执行过滤操作(排序),并在块内插入单元格、移动单元格和删除单元格。我得到了一些奇怪的结果,所以我想知道是否真的支持这种行为(我认为这些指标都搞砸了)。我是否只需将每种“类型”的操作(插入、移动和删除)分解为单独的不同块?

4

2 回答 2

1

刚刚找到这个答案,寻找各种操作的排序,并认为我会分享我在与项目插入删除(不移动)结合时发现的关于部分插入/删除的内容。当事情变空时,我正在过滤UICollectionView和删除单元格/部分,并在清除搜索时重新填充它们。我基本上是用一组数组来支持它。

我发现在从数据源中删除要删除的部分之前,我需要使用行和部分索引计算已删除的项目。(前段删除)

然后从数据源中删除这些部分并存储这些索引以进行删除。

然后插入任何新的部分/根据需要进行排序/并跟踪所有插入的部分。

最后根据新的节索引计算插入的行。

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 上。

于 2016-09-08T15:15:44.547 回答
-1

里面的所有操作performBatchUpdates都是针对当前索引执行的。所以不,你不应该将插入/删除/移动分解成不同的块,这正是performBatchUpdates它的用途。如果没有一些代码或对您所看到的怪异的描述,很难提供帮助......

于 2012-12-06T20:22:28.783 回答