iOS устанавливает для UITableViewCell.isSelected значение true, методы делегата не вызывают - PullRequest
0 голосов
/ 03 декабря 2018

Это пример проекта на мой вопрос.https://github.com/KeDaQHR/TableViewCell.isSelected

В основном я установил:

tableView.allowsMultipleSelection = true

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

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
  if shoudSelect {
    cell.setSelected(true, animated: true)
  }
}

, которыйсделает все ячейки для выбора.Затем, если я коснусь ячейки, ни один из методов делегатов, таких как willSelectRowAt, didSelectRowAt, didDeselectRowAt, не будет вызван.

Если я заменим

cell.setSelected(true, animated: true)

на

tableView.selectRow(at: indexPath, animated: true, scrollPosition: .none)

Это будет работать нормально.Кто-нибудь знает, почему методы делегатов не реагируют в первом случае?Спасибо!

...