如何在突出显示时更改 UIButton 的背景颜色? [英] How to change the background color of a UIButton while it's highlighted?

查看:39
本文介绍了如何在突出显示时更改 UIButton 的背景颜色?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序中的某个时刻,我有一个突出显示的 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?

推荐答案

您可以覆盖 UIButtonsetHighlighted 方法.

You can override UIButton's setHighlighted method.

目标-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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆