以编程方式将UITableView行移动到新位置Swift 3

时间:2018-07-24 15:39:41

标签: swift uitableview swift3

我希望将表视图中的项目移动到新位置。我有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()

哪种方法更好? 没有?很高兴学习新方法,谢谢:)

0 个答案:

没有答案