【问题标题】:Swift TableView Prevent Button color change on selectionSwift TableView防止选择时按钮颜色更改
【发布时间】:2017-02-24 12:20:49
【问题描述】:

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

提前致谢!

【问题讨论】:

标签: swift uitableview uibutton swift3


【解决方案1】:

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

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

【讨论】:

  • 嗨!感谢您的回复。如果我只是点击一个表格视图单元格,代码就可以工作。但是,如果我要按住触摸,按钮的背景颜色会变为灰色。你也有这个想法吗?顺便说一句,很抱歉回复晚了。
  • 欢迎朋友 :)
【解决方案2】:

我用上面 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

}

【讨论】:

    【解决方案3】:

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

    selectionStyle = .none
    

    【讨论】:

    • 这应该是公认的答案 - 仅供参考,将其应用于单元格,而不是 tableView
    猜你喜欢
    • 1970-01-01
    • 2011-08-29
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多