我的tableview单元格中有一个图像,当选中该单元格时,该图像将变为黑色,而默认单元格将变为灰色。问题是,当我向下滚动屏幕并再次向上滚动时,图像将像没有被选择为“ cellSelected”一样被调回。因此,在滚动所选单元格后,图像应为“ cellSelected”,而其图像为“ cellNotSelected”。如何确保我的应用程序记住所选的单元格图像?
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath) as! CustomerSelectsBusinessesCell
cell.selectedCell.image = UIImage(named: "cellSelected")
updateCount()
}
override func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath) as! CustomerSelectsBusinessesCell
cell.selectedCell.image = UIImage(named: "cellNotSelected")
updateCount()
}
答案 0 :(得分:2)
您需要将状态更改保存在数据模型中的某个位置,然后编辑数据源方法(特别是cellForRowAtindexPath)以显示处于新选定状态的单元格。
对单元格所做的任何更改都是如此。如果单元格在屏幕外滚动,它将被回收,并且您对其视图所做的任何自定义都将不再与该indexPath关联。因此,当用户对单元格采取操作时,您始终需要将信息记录在数据模型中。