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

时间:2015-07-21 14:52:01

标签: ios swift user-interface

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

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

我试过这个:

@IBAction func backButtonDidTouch(sender: AnyObject) {

        backButton.backgroundColor = UIColor.blueColor()

    }

但是当我抬起手指时,这会让按钮呈现蓝色。当我触摸/按下按钮时,我希望背景颜色很快改变。并且还将图像保持白色。

由于

3 个答案:

答案 0 :(得分:4)

您可以更改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))   
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

您已选择默认的Touch Up Inside。

选择事件Touch Down。