小编典典

突出显示时如何更改 UIButton 的背景颜色?

all

在我的应用程序的某个时刻,我有一个突出显示UIButton(例如,当用户将手指放在按钮上时)并且我需要在按钮突出显示时更改背景颜色(因此当用户的手指仍在按钮上时)
.

我尝试了以下方法:

_button.backgroundColor = [UIColor redColor];

但它不起作用。颜色保持不变。当按钮未突出显示并且工作正常时,我尝试了相同的代码。我也尝试在更改颜色后调用-setNeedsDisplay,它没有任何效果。

如何强制按钮更改背景颜色?


阅读 212

收藏
2022-05-16

共1个答案

小编典典

您可以覆盖UIButtonsetHighlighted方法。

Objective-C

- (void)setHighlighted:(BOOL)highlighted {
    [super setHighlighted:highlighted];

    if (highlighted) {
        self.backgroundColor = UIColorFromRGB(0x387038);
    } else {
        self.backgroundColor = UIColorFromRGB(0x5bb75b);
    }
}

斯威夫特 3.0 和斯威夫特 4.1

override open var isHighlighted: Bool {
    didSet {
        backgroundColor = isHighlighted ? UIColor.black : UIColor.white
    }
}
2022-05-16