#ios #uitableview
#iOS #uitableview
Вопрос:
У меня есть UITableView, в котором выполняется действие пролистывания для удаления с помощью:
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath)
Это работает отлично, однако бывают ситуации, когда удаление не должно происходить, в этой ситуации при пролистывании для удаления и нажатии кнопки удаления кнопка не исчезает, а остается там, как будто ничего не происходит.
Мне кажется, кнопка удаления сворачивается только тогда, когда строка удаляется из таблицы (или ее резервного хранилища).
Есть ли способ сообщить представлению отменить действие?
Ответ №1:
Добавьте логику для определения, подходит ли строка для редактирования, в
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool
(от UITableViewDataSource
)
Конечно, это предотвращает любое редактирование ячейки, а не только удаление, это может оказаться неправильным, если вы хотите разрешить редактирование, но не удаление.
Комментарии:
1. Если бы я в настоящее время не был настроен на iOS 10, я, вероятно, мог бы использовать:
tableView(_:trailingSwipeActionsConfigurationForRowAt:)