首页 > 解决方案 > 当我滚动时,TableView DidSelectRowAt 将更改其他单元格的背景颜色

问题描述

我有一个 TableView 有时有足够的单元格允许我滚动表格。同时我已经设置了我的 didSelectRow 来切换单元格的背景颜色。似乎在选择了几个然后向下滚动后,我发现更多的单元格已超出我的控制范围。

这是我的 didSelectRowAt:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
   packSizesTableView.cellForRow(at: indexPath)?.backgroundColor = UIColor.yellow
   packList[indexPath.row].picked = true
   pickedRows.append(indexPath)

除了更改 indexPath.row 的颜色之外,还有其他方法可以选择我的表格单元格吗?

标签: swiftxcodeuikittableview

解决方案


您可以在 cellForRowAt 方法中设置单元格颜色,如下所示:-

If packList[indexPath.row].picked {
    yourCell.backgroundColor = UIColor.yellow 
}  else {
    yourCell.backgroundColor =  UIColor.red
}

推荐阅读