Swift TableView防止选择时按钮颜色发生变化

时间:2016-10-15 00:36:52

标签: swift uitableview uibutton swift3

当我在IBAction中选择一行时,我很难阻止我的tableView按钮的背景颜色发生颜色变化。我按钮的背景设置为绿色,但是当我点击表格视图单元格时,它变为灰色。我试图通过不同的函数(tableView didSelectRowAtIndexPath等)来改变颜色。关于如何阻止按钮背景改变的任何想法?

提前致谢!

3 个答案:

答案 0 :(得分:2)

backgroundColor中的按钮TableView遇到了同样的问题,并以这种方式解决了问题。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let cell = tableView.cellForRow(at: indexPath) as! CustomCell
    cell.button.backgroundColor = UIColor.greenColor()
}

答案 1 :(得分:0)

我用上面提到的Nirav代码解决了这个问题:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let cell = tableView.cellForRow(at: indexPath) as! CustomCell
    cell.button.backgroundColor = UIColor.green
}

然而,我注意到当我敲击行时按钮背景颜色继续变为灰色,并且在没有释放的情况下保持“敲击”。我通过添加以下代码解决了这个问题:

func tableView(_ tableView: UITableView, didHighlightRowAt indexPath: IndexPath) {

    let cell = tableView.cellForRow(at: indexPath) as! CustomCell
    cell.exploreButton.backgroundColor = UIColor.green

}

答案 2 :(得分:0)

如果要完全禁用选择时的颜色更改,请在自定义单元格中更改selectionStyle属性:

selectionStyle = .none