У меня есть UITableView, когда пользователь нажимает на ячейку, он становится серым, чтобы указать, что он завершен. Однако, когда ячейка прокручивается из поля зрения, когда она возвращается в поле зрения, она вернулась к цвету фона по умолчанию, стирая взаимодействие пользователей.Персистент UITableViewCell цвет фона на прокрутке tableViewCells
Есть ли способ сохранить цвет фона, используемый для прокрутки ячейки?
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as? TodaysRoutineTableViewCell else {
fatalError("Unexpected Index Path")
}
cell.backgroundColor = UIColor.customBackgroundGraphite()
cell.textLabel?.textColor = UIColor.white
configure(cell, at: indexPath)
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if let cell = tableView.cellForRow(at: indexPath) {
if cell.backgroundColor == UIColor.customExerciseDoneCellColor() {
cell.backgroundColor = UIColor.customBackgroundGraphite()
} else if cell.backgroundColor == UIColor.customBackgroundGraphite() {
cell.backgroundColor = UIColor.customExerciseDoneCellColor()
}
}
}
Поддерживать состояние в вашей модели класса и использовать класс модели для заполнения ячейки. Отделите представление от вашей модели. – NSNoob
Вы повторно используете ячейки с помощью 'tableView.dequeueReusableCell'. Это означает, что одни и те же ячейки повторно используются для отображения разных данных в режиме прокрутки/перезагрузки. Как вы предполагаете, что повторно используемая ячейка должна помнить, что она была выбрана до того, пока вы не предоставите ей эту информацию? – NSNoob
Я знаю, что это проблема, я здесь ищу решение ... – jwarris91