Табличное представление не редактирует на действии удара - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь реализовать возможность редактировать порядок ячеек таблицы в моем приложении.Для этого пользователь проводит пальцем вправо и нажимает кнопку редактирования.Однако, когда нажимается кнопка редактирования, просмотр таблицы не начинает редактирование.

Ниже приведен мой код:

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()
}

После нажатия кнопки редактирования кнопка редактирования закрывается, ноtableview не входит в состояние .isEditing, как должно.

1 Ответ

0 голосов
/ 18 сентября 2018

Вы можете использовать функцию 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]
}

Я создал приложение, подобное этому, и оно хорошо работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...