我正在尝试实现在我的应用中编辑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状态。
答案 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]
}
我制作了这样的应用,并且运行良好。