UITableView: метод didDeselectCell не вызывается, хотя ячейка отменяется - PullRequest
0 голосов
/ 26 марта 2019

Я использую UITableView с включенной анимацией «проведите по экрану».

Мне нужно отслеживать didDeselectCell метод, чтобы включить / отключить некоторые элементы управления в приложении.

Однако, если пользователь инициирует жест «проведите пальцем по удалению», откроет кнопку «удалить», а затем обратный жест (без завершения), ячейка отменяется и событие не регистрируется.

Два вопроса:

  1. Можно ли разрешить запуск события didDeselectCell и в этом случае?
  2. Как можно получить уведомление о том, что ячейка автоматически отменяется с помощью «swipe to delete»?

1 Ответ

2 голосов
/ 26 марта 2019

didDeselectRowAtwillDeselectRowAt) вызываются, только если пользователь нажимает, чтобы выбрать строку, в то время как другая строка уже выбрана.

НЕ вызывается при начале редактирования или при отмене выбора / выбора с помощью кода с помощью .deselectRow(at: ... или .selectRow(at: ... и т. Д.

Одним из вариантов будет реализация willBeginEditingRowAt:

func tableView(_ tableView: UITableView, willBeginEditingRowAt indexPath: IndexPath) {
    if let iPath = tableView.indexPathForSelectedRow {
        print("the row at \(iPath) was selected...")
        // do stuff for that row
    }
}

В зависимости от того, что вам нужно сделать, это может работать, а может и не работать в вашем случае.

...