让我说几部分是工作日,几行是我当天的锻炼。
所以结构可能是下一个
Monday section 0
Workout 1 (row 0)
Workout 2 (row 1)
Tuesday section 1
Workout 1 (row 0)
Workout 2 (row 1)
因此,当我在各节之间移动单元格时,我实际上希望在各节中重新锻炼元素的位置。
目前我有数据模型
class Workout {
var position: Int
}
因此,现在当我将一个单元格从一个部分移到另一个部分时,我需要循环遍历[workouts]
数组以重新计算源部分和目标部分中的位置。
也许有一些漂亮的解决方案,例如List
带有第一个和最后一个元素,我可以简单地重新绑定它们或任何其他元素。
我看到没有列表here
答案 0 :(得分:1)
要处理tableView
中的重新排序,只需使用其UITableViewDataSource
方法即可。
示例:
我们将下面的array
用作tableView's
dataSource
:
var arr = [["First", "Second"], ["Third", "Fourth"]]
要在对单元格重新排序时修改dataSource
,请使用tableView(_:moveRowAt:to:)
方法并根据dataSource
和sourceIndexPath
更改destinationIndexPath
。
func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
let val = arr[sourceIndexPath.section][sourceIndexPath.row]
arr[destinationIndexPath.section][destinationIndexPath.row] = val
arr[sourceIndexPath.section].remove(at: sourceIndexPath.row)
}
此外,如上所述,List
中没有类似Swift
的东西。您必须使用Array
来处理。