Как получить IndexPath выбранной ячейки, как только она нажата в swift - PullRequest
1 голос
/ 11 февраля 2020

Я пытался получить IndexPath текущей выбранной строки. Я использовал эту функцию:

    override func tableView(_ tableView: UITableView, didDeselectRowAt indexPathForSelection: IndexPath) {
            print(SavedColors.SavedColorsList[indexPathForSelection.row].Name)
    }

Проблема в том, что она дает мне IndexPath ячейки, которая была только что отключена. Если я нажму первую ячейку, ничего не произойдет. Если я затем нажму вторую ячейку, она напечатает «0» indexPath первой ячейки и так далее. Я хочу получить индексный путь, как только будет нажата ячейка. Как мне это сделать?

Сказано иначе: функция вызывается, когда выбор переключается на другую ячейку, но не когда ячейка выбрана. Я хочу, чтобы пользователь коснулся и активировал функцию. Вместо этого, когда вы нажимаете, ничего не происходит, пока вы не нажмете другую ячейку. Как я могу это исправить?

Я не знаю, связано ли это, но функция self.tableView.deselectSelectedRow(animated: true) тоже ничего не делает ...

Спасибо

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

Вам нужно использовать didSelect, а не deSelect

 override func tableView(_ tableView: UITableView, didSelectRowAt indexPathForSelection: IndexPath) {
            print(SavedColors.SavedColorsList[indexPathForSelection.row].Name)
    }

.

DidSelect звонки, когда вы выбираете ячейку, и отменять выбор звонков, когда вы не выбираете ячейку ... так что будьте осторожны, когда вы пишете эти функции счастливого кодирования =)

0 голосов
/ 11 февраля 2020

извините, но я не совсем уловил ваш вопрос

, если вы действительно хотите получить indexPath, когда вы нажмете на определенную ячейку, вы можете выполнить

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)

...