繁体   English   中英

按下时快速更改按钮背景颜色和图像颜色

[英]Swift change button background color and image color while pressed

我有一个带有白色箭头图像的UIButton。

我要做的是更改按钮的背景色,并在按下按钮时将图像保持为白色。

我已经试过了:

@IBAction func backButtonDidTouch(sender: AnyObject) {

        backButton.backgroundColor = UIColor.blueColor()

    }

但这会在我抬起手指时立即将按钮变为蓝色。 我希望背景颜色在我触摸/按下按钮时立即改变。 并保持图像白色。

谢谢

您可以在UIButton上更改背景颜色

首先,您应该创建一个util类。

class Color {
    class func imageWithColor(color: UIColor, size: CGSize = CGSizeMake(60, 60)) -> UIImage {
        var rect = CGRectMake(0, 0, size.width, size.height)
        UIGraphicsBeginImageContext(rect.size)
        var context = UIGraphicsGetCurrentContext()

        CGContextSetFillColorWithColor(context, color.CGColor);
        CGContextFillRect(context, rect);

        var image = UIGraphicsGetImageFromCurrentImageContext()

        UIGraphicsEndImageContext();

        return image;
    }
}

接下来,您可以为UIButton设置突出显示颜色

UIButton类型必须为“自定义”

func viewDidLoad() {
    backButton.setBackgroundImageForState(Color.imageWithColor(UIColor.blueColor()), forState: .Highlighted))   
}

使用setBackgroundImage(_:forState:)更改选定状态的背景

在界面构建器中创建操作方法时,可以选择事件类型。 在同一对话框中,您可以选择方法的名称。

您选择了默认的“ Touch Up Inside”。

选择事件Touch Down。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM