Изменить цвет фона строки по умолчанию при выделении - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть UITableView, когда при нажатии строки появляется UIView, все работает нормально, но я хочу, чтобы была возможность изменить цвет фона строки, когда она нажата на другой цвет, чемпо умолчанию серый.Стандартное поведение, как у меня сейчас, ведет себя следующим образом: когда я касаюсь строки, она меняет цвет фона на серый, а когда я закрываю всплывающее окно UIView, цвет фона меняется на белый по умолчанию.

Я хочу изменить цвет фона на синий при нажатии строки и изменить его на белый при отклонении UIView.

Я попробовал следующее, что меняетцвет при нажатии строки, но он не меняет его обратно на белый, когда всплывающее окно UIView закрывается.Другими словами, он оставляет постучавшие строки с синим фоном

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    /// Change color of the selected row
    let selectedCell = tableView.cellForRow(at: indexPath)!
    selectedCell.contentView.backgroundColor = UIColor.blue
}

Как я могу изменить фон ячейки, когда она нажата, и изменить его на белый по умолчанию, когда всплывающее окно UIView закрывается?

К вашему сведению - я пытался didDeselectRowAt, но он никогда не вызывался.

Спасибо

Ответы [ 2 ]

2 голосов
/ 22 сентября 2019

didDeselectRowAt вызывается, когда вы нажимаете другую ячейку, когда выбран ток, вам нужно проверить viewDidAppear, вызывает ли его вызов отклонение или использовать делегат иначе, и внутри него добавить этот код

tableView.visibleCells.forEach { 
  $0.backgroundColor = .white
}
1 голос
/ 22 сентября 2019

попробуйте это, вы должны установить стиль выделения на none, когда вы возвращаете ячейку cell.selectionStyle = .none

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "Your identifier", for: indexPath)
    cell.selectionStyle = .none
    return cell
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...