如何突出显示UIButton的背景颜色? [英] How to change the background color of a UIButton while it's highlighted?
问题描述
在我的应用中的某个时刻,我有一个突出显示的 UIButton
(例如当用户将手指放在按钮上时)我需要更改背景颜色按钮突出显示(因此,当用户的手指仍在按钮上时)。
At some point in my app I have a highlighted UIButton
(for example when a user has his finger on the button) and I need to change the background color while the button is highlighted (so while the finger of the user is still on the button).
我尝试了以下内容:
_button.backgroundColor = [UIColor redColor];
但它不起作用。颜色保持不变。当按钮没有突出显示时我尝试了相同的代码,它工作正常。我也尝试在更改颜色后调用 -setNeedsDisplay
,它没有任何效果。
But it is not working. The color remains the same. I tried the same piece of code when the button is not highlighted and it works fine. I also tried calling -setNeedsDisplay
after changing the color, it didn't have any effect.
如何强制用于更改背景颜色的按钮?
How to force the button to change the background color?
推荐答案
您可以覆盖 UIButton
的 setHighlighted
方法。
Objective-C
- (void)setHighlighted:(BOOL)highlighted {
[super setHighlighted:highlighted];
if (highlighted) {
self.backgroundColor = UIColorFromRGB(0x387038);
} else {
self.backgroundColor = UIColorFromRGB(0x5bb75b);
}
}
Swift 3.0和Swift 4.1
override open var isHighlighted: Bool {
didSet {
backgroundColor = isHighlighted ? UIColor.black : UIColor.white
}
}
这篇关于如何突出显示UIButton的背景颜色?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!