Swift indexPath数组计算
Swift indexPath array calculations
我正在尝试研究如何使用 .map 为 peformBatchUpdates 函数修改 collectionView 中的插入 indexPaths
假设我在 collectionView 中有项目 1 2 3 4 5 6 7 和要删除的 indexPaths 数组
▿ 2 elements
▿ 0 : 2 elements
- 0 : 0
- 1 : 0
▿ 1 : 2 elements
- 0 : 0
- 1 : 1
和用于插入的索引路径数组
▿ 2 elements
▿ 0 : 2 elements
- 0 : 0
- 1 : 3
▿ 1 : 2 elements
- 0 : 0
- 1 : 4
我认为需要在执行删除后计算 performBatchUpdates 操作的插入索引路径,因此看到删除的是 collectionView 项中的前 2 项,需要减少 insertionIndexPaths 的 indexPath.item通过 2 让它们插入正确的位置,即我希望最终的 insertionIndexPaths 是 ...
▿ 2 elements
▿ 0 : 2 elements
- 0 : 0
- 1 : 1
▿ 1 : 2 elements
- 0 : 0
- 1 : 2
基本上我想我需要检查 insertionIndexPath 数组中的每个 indexPath.item,看看有多少 deletionIndexPaths 在那个 insertionIndexPath 前面,然后将 insertionIndexPath.item 减去那个数字。
如何在这些 insertionIndexPaths 上使用 .map 以获得正确的结果?
我可以用
let adjustedPageDestinationIndexPaths = pageDestinationIndexPaths.map { ( indexPath ) -> IndexPath in
return IndexPath(item: indexPath.item - pageSourceIndexPaths.filter { [=10=].item < indexPath.item }.count , section: 0)
}
它为下面的示例提供了正确调整的 indexPaths,仅将 2 个项目从位置 0 和 1 移动到位置 3 和 4,但现在意识到在 collectionView 中一次移动的项目数量越多,数量就越大我需要跟踪以计算每个循环中的源 indexPath 和目标 indexPath 调整的项目。回到绘图板。
我正在尝试研究如何使用 .map 为 peformBatchUpdates 函数修改 collectionView 中的插入 indexPaths
假设我在 collectionView 中有项目 1 2 3 4 5 6 7 和要删除的 indexPaths 数组
▿ 2 elements
▿ 0 : 2 elements
- 0 : 0
- 1 : 0
▿ 1 : 2 elements
- 0 : 0
- 1 : 1
和用于插入的索引路径数组
▿ 2 elements
▿ 0 : 2 elements
- 0 : 0
- 1 : 3
▿ 1 : 2 elements
- 0 : 0
- 1 : 4
我认为需要在执行删除后计算 performBatchUpdates 操作的插入索引路径,因此看到删除的是 collectionView 项中的前 2 项,需要减少 insertionIndexPaths 的 indexPath.item通过 2 让它们插入正确的位置,即我希望最终的 insertionIndexPaths 是 ...
▿ 2 elements
▿ 0 : 2 elements
- 0 : 0
- 1 : 1
▿ 1 : 2 elements
- 0 : 0
- 1 : 2
基本上我想我需要检查 insertionIndexPath 数组中的每个 indexPath.item,看看有多少 deletionIndexPaths 在那个 insertionIndexPath 前面,然后将 insertionIndexPath.item 减去那个数字。
如何在这些 insertionIndexPaths 上使用 .map 以获得正确的结果?
我可以用
let adjustedPageDestinationIndexPaths = pageDestinationIndexPaths.map { ( indexPath ) -> IndexPath in
return IndexPath(item: indexPath.item - pageSourceIndexPaths.filter { [=10=].item < indexPath.item }.count , section: 0)
}
它为下面的示例提供了正确调整的 indexPaths,仅将 2 个项目从位置 0 和 1 移动到位置 3 和 4,但现在意识到在 collectionView 中一次移动的项目数量越多,数量就越大我需要跟踪以计算每个循环中的源 indexPath 和目标 indexPath 调整的项目。回到绘图板。