Tableview不会在滑动操作时进行编辑

时间:2018-09-18 18:01:08

标签: ios swift uitableview

我正在尝试实现在我的应用中编辑tableview单元格顺序的功能。为此,用户向右滑动并点击编辑按钮。但是,当点击“编辑”按钮时,表格视图不会开始编辑。

下面是我的代码:

func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {

    let edit = UIContextualAction(style: .normal, title: "Edit") { (UIContextualAction, UIView, complete: @ escaping (Bool) -> Void) in

        self.toggleTableViewEditing()
        self.editEnabled()
        complete(true)

    }

    return UISwipeActionsConfiguration(actions: [edit])

}

func editEnabled() {
    if tableView.isEditing == true {
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(toggleTableViewEditing))
    } else {
        navigationItem.rightBarButtonItem = nil
    }
}

@objc func toggleTableViewEditing() {
    tableView.isEditing = !tableView.isEditing
    editEnabled()
}

点击编辑按钮后,编辑按钮将关闭,但表视图不会像应有的那样进入.isEditing状态。

1 个答案:

答案 0 :(得分:-1)

您可以使用editActionsForRowAt函数:

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
    return true
}

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {

    let editAction = UITableViewRowAction(style: .default, title: "Edit") { (action, index) in
        // your edit action here
    }

    return [editAction]
}

我制作了这样的应用,并且运行良好。