[英]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.