UIButton标题文字颜色


Answers:


438

目标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)

2
这可行。但是原始问题中的代码也经常有效。有谁知道为什么标题有时只不能回答问题中的代码?
crgt 2013年

7
原因是当单击按钮或以其他方式更改状态时,按钮中的代码会重置titleLabel的属性,以匹配按钮对该状态具有的内部设置。
psycotica0

1
苹果的文档中声明如下:“请勿使用label对象设置文本颜色或阴影颜色。相反,请使用此类的setTitleColor:forState:和setTitleShadowColor:forState:方法进行这些更改。” 虽然没有“原因”的真正解释。
clauswey

最重要的是,当您为UIControlStateNormal设置颜色时,无需为所有其他状态设置颜色(如果您希望按钮在按下时看起来相同)。
drpawelo 2015年

如何在应用程序委托中全局更改按钮文本的颜色。也许使用UIButton.appearance()。setTitleColor吗?
Awais Fayyaz

5

我创建了从扩展的自定义类MyButtonUIButton。然后添加到Identity Inspector

在此处输入图片说明

之后,将按钮类型更改为Custom

在此处输入图片说明

然后你可以设置类似的属性textColor,并UIFont为您UIButton的不同状态:

在此处输入图片说明

然后,我还在MyButton类内部创建了两个方法,当我希望将a 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因为它们仅可用于简短显示选择,而不用于显示选择本身。


不应使用最后一个代码片段|代替&吗?
130e13a

5

在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)

0

迅捷5版本:

通过使用默认的内置颜色:

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

要么

您可以使用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)
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.