无法将moveRowAtIndexPath用于tableView

时间:2018-10-25 15:16:32

标签: ios arrays swift tableview

当前,我在自定义表格视图中显示了一个简单的对象数组,我还使用了SwipyCell测试滑动手势。

然后,我尝试使用moveRowAtIndexPath对对象进行重新排序,但是由于某些原因,它不适用于以下代码。

func tableView(tableView: UITableView, moveRowAtIndexPath sourceIndexPath: NSIndexPath, toIndexPath destinationIndexPath: NSIndexPath) {

    let itemThatMoved = self.tasks[sourceIndexPath.row]
    self.array.remove(at: sourceIndexPath.row)
    self.array.insert(itemThatMoved, at: destinationIndexPath.row)


     // Change data properties

}

func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    // Return NO if you do not want the item to be re-orderable.
    return true
}

我还在ViewController中设置了以下内容

table.isUserInteractionEnabled = true
table.allowsSelectionDuringEditing = true
table.allowsSelection = true

有人对我可能做错了什么建议吗?

1 个答案:

答案 0 :(得分:2)

如果您使用的是Swift 3+,则委托方法的签名错误

func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool

func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath)