Сделайте UITableViewCell кратко мигать

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

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

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

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

Спасибо!

2 ответа

Решение

Наконец получил его на работу, что я сделал:

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
        })
    }

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

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

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  tableView.deselectRow(at: indexPath, animated: true)
  // Do whatever else you need
}
Другие вопросы по тегам