如何设置UIButton的标题文字颜色?


124

我尝试更改按钮文本的颜色,但仍然保持白色。

isbeauty = UIButton()
isbeauty.setTitle("Buy", forState: UIControlState.Normal)
isbeauty.titleLabel?.textColor = UIColorFromRGB("F21B3F")
isbeauty.titleLabel!.font = UIFont(name: "AppleSDGothicNeo-Thin" , size: 25)
isbeauty.backgroundColor = UIColor.clearColor()
isbeauty.layer.cornerRadius = 5
isbeauty.layer.borderWidth = 1
isbeauty.layer.borderColor = UIColorFromRGB("F21B3F").CGColor
isbeauty.frame = CGRectMake(300, 134, 55, 26)
isbeauty.addTarget(self,action: "first:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(isbeauty)

我还尝试过将其更改为红色,黑色,蓝色,但是没有任何反应。

Answers:


280

您必须使用func setTitleColor(_ color: UIColor?, for state: UIControlState)与设置实际标题文本相同的方式。文件

isbeauty.setTitleColor(UIColorFromRGB("F21B3F"), for: .normal)

出于可读性考虑,我宁愿不限定我的枚举,但这就是我
styler1972

@ styler1972我也更喜欢-显然,当我最初编写答案时没有意识到
luk2302 '16

1
isbeauty.setTitleColor(UIColorFromRGB(rgbValue:“ F21B3F”),for:.Normal)
Arunabh Das

3
我相信从xcode 9开始,它现在是“ .normal”而不是“ .Normal”
Buddhisthead

4
我的代码:yourButtonName.setTitleColor(UIColor.red,for:
.normal

111

Swift UI解决方案

Button(action: {}) {
            Text("Button")
        }.foregroundColor(Color(red: 1.0, green: 0.0, blue: 0.0))

雨燕3,雨燕4,雨燕5

改善评论。这应该工作:

button.setTitleColor(.red, for: .normal)

10

设置按钮标题颜色的示例

btnDone.setTitleColor(.black, for: .normal)

8
我的答案和您的答案有什么区别?
Vyacheslav

3

这是5个兼容的答案。如果您想使用一种内置颜色,则只需使用

button.setTitleColor(.red, for: .normal)

如果需要一些自定义颜色,请首先为UIColor创建扩展,如下所示。

import UIKit
extension UIColor {
    static var themeMoreButton = UIColor.init(red: 53/255, green: 150/255, blue: 36/255, alpha: 1)
}

然后将其用于您的按钮,如下所示。

button.setTitleColor(UIColor.themeMoreButton, for: .normal)

提示:您可以使用此方法存储来自rgba颜色代码的自定义颜色,并在整个应用程序中重复使用它。


2
func setTitleColor(_ color: UIColor?, 
               for state: UIControl.State)

参数

color:
用于指定状态的标题的颜色。

state:
使用指定颜色的状态。可能的值在UIControl.State中进行了描述。

样品

let MyButton = UIButton()
MyButton.setTitle("Click Me..!", for: .normal)
MyButton.setTitleColor(.green, for: .normal)

0

参照单选按钮,您还可以使用分段控制来做到这一点,如下所示:

步骤1:将分段控件拖动到属性检查器中的视图中,以更改两个分段的标题,例如“ Male”和“ Female”

第2步:在代码中创建一个出口及其操作

步骤3:创建变量以供将来使用以包含选择的数据

在代码中执行以下操作:

@IBOutlet weak var genderSeg: UISegmentedControl!

var genderPick : String = ""


 @IBAction func segAction(_ sender: Any) {

    if genderSeg.selectedSegmentIndex == 0 {
         genderPick = "Male"
        print(genderPick)
    } else if genderSeg.selectedSegmentIndex == 1 {
        genderPick = "Female"
          print(genderPick)
    }
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.