这很简单。
首先,您需要在ViewDidLoad()方法中设置按钮的背景颜色。在此之前,您应该已经为按钮设置了IBOutlet。在我的示例中,我只会将IBOutlet命名为一个通用的“button”。
您的IBOutlet将是:
@IBOutlet weak var button:UIButton!
不要忘记将插座连接到按钮上!
接下来,在ViewDidLoad方法中将按钮的背景图片设置为灰色,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
button.backgroundColor = UIColor.grayColor()
}
这样可以使您的按钮拥有通用的灰色背景。如果您想更精确地控制颜色,可以将button.backgroundColor = UIColor.grayColor()
替换为button.backgroundColor = UIColor(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)
,并将"CGFloat"替换为您选择的值。
接下来是改变按钮颜色的实际代码:
创建一个IBAction并将其与按钮连接起来。我的称为:
@IBAction func buttonTapped(sender: AnyObject) {}
您的要求是,如果按钮处于灰色状态,则在触摸后应变为蓝色;如果它是蓝色,则在触摸后应变为灰色。
因此,在刚才定义的IBAction中,您将添加一个If语句,如下所示:
@IBAction func buttonTapped(sender: AnyObject) {
if button.backgroundColor == UIColor.grayColor() {
button.backgroundColor = UIColor.blueColor()
}
else if button.backgroundColor == UIColor.blueColor() {
button.backgroundColor = UIColor.grayColor()
}
}
如果按钮的背景颜色为灰色,那么这个if语句会将其设置为蓝色,或者如果背景颜色为蓝色,就将其设置为灰色。如果你想要更个性化的颜色,可以将
UIColor.BlueColor()
或
UIColor.GrayColor()
替换为
UIColor(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)
。
编辑:如果你只想改变按钮的文本颜色,在所需的位置添加以下语句或其变体即可:
button.setTitleColor(UIColor.grayColor(), forState: UIControlState.Selected)
button.setTitleColor(UIColor.white.withAlphaComponent(0.5), for: .highlighted)
- dziobaczy