UIButton标题文字颜色

时间:2011-07-15 07:11:30

标签: ios objective-c iphone uibutton textcolor

我正在为UIButton

设置文字颜色
headingButton.titleLabel.textColor = [UIColor colorWithRed:36/255.0 
                                                     green:71/255.0 
                                                      blue:113/255.0 
                                                     alpha:1.0];

它不会改变我正在使用的其他代码中使用的相同代码的颜色。

5 个答案:

答案 0 :(得分:418)

使用

<强>目标C

[headingButton setTitleColor:[UIColor colorWithRed:36/255.0 green:71/255.0 blue:113/255.0 alpha:1.0] forState:UIControlStateNormal];

<强>夫特

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

答案 1 :(得分:5)

我创建了一个从UIButton扩展的自定义类 MyButton 。然后将其添加到Identity Inspector

enter image description here

在此之后,将按钮类型更改为自定义

enter image description here

然后,您可以针对不同的状态为textColor设置UIFontUIButton等属性:

enter image description here

然后我还在MyButton类中创建了两个方法,当我希望UIButton显示为突出显示时,我必须在我的代码中调用:

- (void)changeColorAsUnselection{
    [self setTitleColor:[UIColor colorFromHexString:acColorGreyDark] 
               forState:UIControlStateNormal & 
                        UIControlStateSelected & 
                        UIControlStateHighlighted];
}

- (void)changeColorAsSelection{
    [self setTitleColor:[UIColor colorFromHexString:acColorYellow] 
               forState:UIControlStateNormal & 
                        UIControlStateHighlighted & 
                        UIControlStateSelected];
}

您必须将titleColor设置为普通,突出显示并选中UIControlState,因为根据UIControlState的文档,一次可以有多个州。 如果您不创建这些方法,UIButton会显示选择或突出显示,但他们不会留在您UIColor内设置的UIInterface Builder,因为它们只是可用于选择的简短显示,而不是显示选择本身。

答案 2 :(得分:3)

在Swift中:

更改标签文字颜色与为UIButton更改标签文字颜色完全不同。要更改UIButton的文本颜色,请使用此方法:

self.headingButton.setTitleColor(UIColor(red: 107.0/255.0, green: 199.0/255.0, blue: 217.0/255.0), forState: UIControlState.Normal)

答案 3 :(得分:0)

  

swift 5版本:

使用默认的内置颜色:

  1. button.setTitleColor(UIColor.green, for: .normal)

OR

您可以通过RGB方法使用自定义颜色:

  1. button.setTitleColor(UIColor(displayP3Red: 0.0/255.0, green: 180.0/255.0, blue: 2.0/255.0, alpha: 1.0), for: .normal)

答案 4 :(得分:0)

除了颜色之外,我的问题是我正在使用textlabel设置文本

bt.titleLabel?.text = title

我解决了更改为:

bt.setTitle(title, for: .normal)