我主要是一名Java程序员,但我学得很快,而且我遇到了一些障碍。
我正在使用UITableView创建匹配的定义游戏。用户可以选择一个单元格,然后选择另一个单元格来交换其位置。现在的问题是moveRow的UITableViews方法只将第一个参数移动到第二个参数位置。当间隙大于0时,这会产生级联效应。
我很好奇是否有一种简单的方法可以完美地交换表视图中两个单元格的位置。
例如,如果您有单元格1,2,3,4,5并且选择2和4,则新模式将为:1,4,3,2,5。目前它将显示为1,3,4,2,5,因为它只移动第一个选定的单元格。
这里的任何帮助都会非常感激!谢谢。
答案 0 :(得分:2)
执行操作有两个步骤:
包裹在beginUpdates / endUpdates
块中交换表视图中的行。新索引是自动计算的。
tableView.beginUpdates()
tableView.moveRow(at: indexPath1, to: indexPath2)
tableView.moveRow(at: indexPath2, to: indexPath1)
tableView.endUpdates()
注意:如果您使用的是move
操作,则 >>之后