标题文字颜色

我正在为 UIButton设置文本颜色

headingButton.titleLabel.textColor = [UIColor colorWithRed:36/255.0
green:71/255.0
blue:113/255.0
alpha:1.0];

它没有改变颜色,和我在另一个代码中使用的代码一样,它正在工作。

134602 次浏览

使用

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

我创建了一个从 UIButton扩展过来的自定义类 MyButton,然后在 Identity Inspector中添加了以下内容:

enter image description here

然后,将按钮类型改为 习俗:

enter image description here

然后你可以为你的 UIButton设置不同状态的属性,比如 textColorUIFont:

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会显示选择或高亮,但是它们不会停留在你在 UIInterface Builder内部设置的 UIColor中,因为它们只是用于选择的短暂显示,而不是显示选择本身。

斯威夫特:

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

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

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

除了去色之外,我的问题是我使用 textlabel 来设置文本

bt.titleLabel?.text = title

我解决了这个问题:

bt.setTitle(title, for: .normal)