将新单元格插入排序的 UITableView 的有效方法?

Posted

技术标签:

【中文标题】将新单元格插入排序的 UITableView 的有效方法?【英文标题】:Efficient ways of inserting a new cell into a sorted UITableView? 【发布时间】:2009-06-04 15:03:33 【问题描述】:

我正在尝试将一个新单元格插入到对数据进行排序的表格视图中。有没有一种简单有效的方法可以使用 API 做到这一点?

最简单的方法似乎是将新数据插入 NSMutableArray,使用排序描述符排序,然后调用 reloadData。这应该只重新显示可见的行,所以它看起来不会太糟糕。

是否值得对数据数组进行二进制搜索,插入数据然后插入单元格?

【问题讨论】:

【参考方案1】:

这实际上取决于您的表中有多少行。如果您的表只有大约 10 行,只需将数据添加到您的 NSMutableArray、重新加载并重新加载 UITableView 就可以了。

另一方面,如果您的表有成百上千行,那么您肯定会想要做一些更有效率的事情。使用二进制搜索将您的数据插入到您的NSMutableArray 是一个好主意。然后您所要做的就是调用UITableViewinsertRowsAtIndexPaths:withRowAnimation: 将行添加到实际的表视图中。无需重新加载。

【讨论】:

以上是关于将新单元格插入排序的 UITableView 的有效方法?的主要内容,如果未能解决你的问题,请参考以下文章

UITableView - 通过点击现有单元格插入新行

如何使用 diffable UITableView 更新表格单元格

在uitableview中间插入单元格

在 UITableView 中重新排序单元格会取消 Swift 中单元格的功能?

UITableView 单元格插入失败

如何制作像 UITableView 一样的动画重新排序单元格?