更改选择时的默认行背景色

时间:2019-09-22 12:59:52

标签: ios swift uitableview

我有一个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 个答案:

答案 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
 }