为什么我无法更改UIButton文本颜色?

Fra*_*ero 5 uibutton uitableview ios swift swift3

我试图UIButton在Swift 3上以编程方式更改文本颜色.

我已经在其他按钮中完成了,但整个项目中只有一个我无法改变颜色,我找不到原因(我可以从故事板手动更改它但我需要以编程方式更改其颜色).要更改其他按钮中的文本颜色,我已完成以下操作:

customButton.tintColor = UIColor.red
Run Code Online (Sandbox Code Playgroud)

而且运作良好.除了UIButtonUITableViewCell在其中的一个,我无法以UIButton编程方式将文本颜色更改为.我可以手动更改它(使用故事板).

这是我对自定义的代码UITableViewCell:

@IBOutlet weak var customButton: UIButton!

override func awakeFromNib() {
    super.awakeFromNib()

    customButton.tintColor = UIColor.blue
    customButton.backgroundColor = UIColor.yellow
}
Run Code Online (Sandbox Code Playgroud)

但它只会将背景颜色更改为黄色.

这是我的故事板配置(我不知道它是否与此目的相关):

在此输入图像描述

我知道与它的连接UIButton运作良好,因为背景颜色正在改变但是,

为什么我无法更改其文字颜色?我错过了什么吗?

提前致谢!

E-R*_*die 12

问题

设置tintColor仅适用于buttonType = .custom.当您使用创建按钮UIButton()默认buttonType将是.system这将覆盖全球titleLabel,并tintColor由于与特定的配置状态

如果您希望系统的行为在按下按钮时UIButton淡出titleLabel,则需要titleColor为每个状态设置如下:

let button = UIButton()
button.setTitleColor(UIColor.red, for: .normal)
Run Code Online (Sandbox Code Playgroud)

否则你可以直接使用.custom和设置tintColor.

let button = UIButton(type: .custom)
button.tintColor = UIColor.red
Run Code Online (Sandbox Code Playgroud)