如何更改UIButton" glow" "显示触摸突出显示"时使用的颜色已启用?

时间:2017-11-16 15:51:59

标签: ios xamarin uibutton touch highlight

我有一个UIButton"显示触摸突出显示"在故事板中启用。它适用于"白色"点击时发光到按钮。

但是,我有一个浅灰色按钮,想要改变发光颜色,以便它更加明显。

我尝试将突出显示的控件状态的背景图像设置为黑色,但它似乎与发光不同。我可以改变按钮的背景颜色---一切正常。

什么控制发光颜色?或者如果我需要不同的颜色,我是否必须手动完成?

2 个答案:

答案 0 :(得分:3)

"显示触摸突出显示"是一种纯粹的便利,所以如果你想要一个不同的效果你必须手动做。只需为突出显示的状态提供不同的图像,其中包括所需的"发光"图。

答案 1 :(得分:2)

使用setBackgroundImage上的UIButton,您可以创建以下扩展程序,以便为所需的任何州设置颜色:

extension UIButton {
    func setBackgroundColor(color: UIColor, for state: UIControlState) {
        let image = UIImage.image(with: color)
        let insets = UIEdgeInsetsMake(0, 0, 0, 0)
        let stretchable = image.resizableImage(withCapInsets: insets, resizingMode: .tile)
        self.setBackgroundImage(stretchable, for: state)
    }
}

您需要为.highlighted状态设置背景颜色:

button.setBackgroundColor(color: UIColor.red, for: .highlighted)

我只是希望你不介意用代码弄脏你,我不确定如何从故事板上做同样的事情(我甚至不确定你能做到)。