我正在为UIButton
headingButton.titleLabel.textColor = [UIColor colorWithRed:36/255.0
green:71/255.0
blue:113/255.0
alpha:1.0];
它不会改变我正在使用的其他代码中使用的相同代码的颜色。
答案 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
:
在此之后,将按钮类型更改为自定义:
然后,您可以针对不同的状态为textColor
设置UIFont
和UIButton
等属性:
然后我还在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版本:
使用默认的内置颜色:
button.setTitleColor(UIColor.green, for: .normal)
OR
您可以通过RGB方法使用自定义颜色:
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)