Сделайте UITableViewCell кратко мигать - PullRequest
0 голосов
/ 30 октября 2018

У меня есть настройка UITableView, и я изучаю все различные варианты выделения UITableViewCell, и мне было интересно следующее:

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        .
        .
    cell.selectionStyle = .gray
    return cell
}

Что происходит сейчас, когда ячейка выделена, она подсвечивается серым цветом, мне было интересно, можно ли отменить выбор ячейки примерно через 0,5 с?

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Вы можете отменить выбор строки в методе didSelectRow, ячейка будет выделена, а затем выбор исчезнет, ​​сообщая пользователю, что он взаимодействовал с ячейкой.

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  tableView.deselectRow(at: indexPath, animated: true)
  // Do whatever else you need
}
0 голосов
/ 30 октября 2018

Наконец заставил его работать, что я сделал:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
 tableView.cellForRow(at: indexPath)?.backgroundColor = .gray
    DispatchQueue.main.asyncAfter(deadline: .now()) {
        UIView.animate(withDuration: 0.5, animations: {
            tableView.cellForRow(at: indexPath)?.backgroundColor = .none
        })
    }

Может быть, это поможет кому-то еще. Единственная проблема заключается в том, что повернутая ячейка не подсвечивается при нажатии, только после того, как жест закончился (т.е. только постучал). Если у кого-то есть решение для этого, я был бы признателен, но сейчас это подойдет.

...