更改按钮文本和状态的颜色
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
和故事板上的文本颜色。
【讨论】:
以上是关于更改按钮文本和状态的颜色的主要内容,如果未能解决你的问题,请参考以下文章
如何为状态 UIControlStateHighlighted 设置按钮标签文本颜色
Razor 页面:如何动态更改按钮属性(颜色、文本)以反映后端更改