我有一个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
,但从未调用过。
谢谢
答案 0 :(得分:2)
viewDidAppear
被调用,当您在选择当前单元格时点击另一个单元格时,您需要检查tableView.visibleCells.forEach {
$0.backgroundColor = .white
}
是否被dismiss调用,或者使用委托,否则在其中添加此代码
{{1}}
答案 1 :(得分:1)
尝试此操作,您必须在返回单元格 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
}