我希望将表视图中的项目移动到新位置。我有models
作为我的数据源。
var models = [Model]
var dataTableView = UITableView!
模型类如下
class Model {
timestamp: Int64
...
}
models
数据源按timestamp
排序,插入的任何项目都应位于正确的位置。
当项目的时间戳更改时,我想将其移动到正确的排序位置。
执行此操作的最佳方法是什么? 我正在考虑只是对数组进行排序以使项目到达正确的位置,然后找到它的索引并执行以下操作
beginUpdates()
reloadRows(at: [INSERTED_ITEM_INDEX, OLD_INDEX], with: .bottom)
endUpdates()
因此,通过重新加载两个索引路径,两个单元都将正确显示。 另一个选择是找到如果插入列表中时该项目将占据哪个索引(而不实际接触列表),然后执行以下操作:
beginUpdates()
moveRow(at: ORIGINAL_INDEX, to: NEW_INDEX)
reloadRows(at: [ORIGINAL_INDEX, NEW_INDEX], with: .bottom)
endUpdates()
哪种方法更好? 没有?很高兴学习新方法,谢谢:)