gpt4 book ai didi

ios - UITableView 中批量行插入/删除的顺序是什么?

转载 作者:可可西里 更新时间:2023-11-01 03:09:13 26 4
gpt4 key购买 nike

UITableView 允许您使用 beginUpdatesendUpdates 进行批量编辑操作。

我的问题是:我需要先知道它是删除还是插入?或者我可以通过 beginUpdates 之前的索引路径引用所有内容,它会神奇地起作用吗?

假设我有一张 table :

A (currently index path 0,0)
B (0,1)
C (0,2)
D (0,3)
E (0,4)
F (0,5)

我想把它变成:

A (0,0)
C (0,1)
D (0,2)
H (0,3)
E (0,4)
F (0,5)

因此,我删除了 B(在 0,1 处)并插入了 H(在 D 之后插入 - 在删除之前的 0,4 处,或之后的 0,3 处)。

那么,在我的开始/结束更新调用之间,哪些会起作用?

  1. deleteRowsAtIndexPaths:0,1,然后是 insertRowsAtIndexPaths:0,4
  2. deleteRowsAtIndexPaths: 0,1,后跟insertRowsAtIndexPaths: 0,3
  3. insertRowsAtIndexPaths:0,4,然后是 deleteRowsAtIndexPaths:0,1
  4. insertRowsAtIndexPaths:0,3,然后是 deleteRowsAtIndexPaths:0,1

最佳答案

与此相关的 Apple 文档位于 Ordering of Operations and Index Paths 下.

Deletion and reloading operations within an animation block specify which rows and sections in the original table should be removed or reloaded; insertions specify which rows and sections should be added to the resulting table. The index paths used to identify sections and rows follow this model.

因此 TableView 将首先执行任何删除或更新操作,其索引路径引用原始表内容中的索引路径。然后执行插入,这些索引路径引用删除之后的索引路径。

因此理论上您的数字“2”选项应该是您想要的那个。

关于ios - UITableView 中批量行插入/删除的顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6927221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com