更改按钮文本和状态的颜色

Posted

技术标签:

【中文标题】更改按钮文本和状态的颜色【英文标题】:Changing color of button text and state 【发布时间】:2014-08-06 21:19:29 【问题描述】:

我需要更改按钮文本的颜色。 我还需要在用户按下后将状态更改为禁用。

我不知道该怎么做。我已经查找了一段时间,但它们要么都在目标 C 中,要么我无法理解(通常是帮助文档,他们很愚蠢。)。

【问题讨论】:

那我应该放什么?我需要知道要写什么。 【参考方案1】:

您可以使用 setTitleColor 方法快速更改特定状态的颜色。

在你的情况下,它将是:

button.setTitleColor(UIColor.grayColor, forState: UIControlState.Normal)

Swift 5 更新:

button.setTitleColor(UIColor.grayColor, for: UIControl.State.normal)

【讨论】:

接受的答案没有改变我的按钮文本颜色。这个答案对我有用。 非常感谢分享这个,我所做的矿工更改是button.setTitleColor(UIColor.grayColor(), forState: UIControlState.Normal) 这个解决方案对我有用,但我想知道为什么像button.titleLabel.textColor = UIColor.grayColor() 这样设置颜色并不能解决问题。是因为视图已经渲染了吗?【参考方案2】:

改变文字颜色

button.titleLabel.textColor = UIColor.grayColor()

要改变状态,按下按钮添加以下 -

button.enabled = true

IBAction 方法应该像 -

@IBAction func buttonTapped(sender : UIButton!) 
    sender.enabled = false

【讨论】:

这是我一直在寻找的答案,谢谢。但是,我收到更改状态的错误。 (AnyObject) -> () 没有名为 enabled 的成员。它也为 titleLabel 执行此操作。 请将 no 更改为 false。我的错误,仍然生活在 Objective-C 时代 是故事板上的按钮还是以编程方式创建的。在我的情况下启用有效。将其更改为 false,而不是 true。 它在我的故事板上,但我将它链接到 ViewController。 可能是可选的,这样做 - button!.enabled = false【参考方案3】:

斯威夫特 3

button.setTitleColor(UIColor.gray, for: UIControlState.normal)

注意;

grayColor 已重命名为 gray Normal 现在是正常的(小写)

您必须为特定按钮状态设置文本颜色。

【讨论】:

【参考方案4】:

对于 Swift3,请尝试以下代码:

 @IBAction func butnClicked(sender : UIButton) 
     sender.setTitleColor(.red, for: .normal)
     sender.isEnabled = false
 

设置 Enabled 和故事板上的文本颜色。

【讨论】:

以上是关于更改按钮文本和状态的颜色的主要内容,如果未能解决你的问题,请参考以下文章

Android 按钮文本颜色始终为粉红色

如何为状态 UIControlStateHighlighted 设置按钮标签文本颜色

Razor 页面:如何动态更改按钮属性(颜色、文本)以反映后端更改

如何在卡片内的按钮上进行 onclick 事件:更改卡片背景颜色、按钮背景和文本颜色以及文本内容

如何在 iOS 7 上更改状态栏背景颜色和文本颜色?

Android:更改按钮文本和背景颜色