All I want to do is change the backgroundColor
of fiveMinButton and tenMinButton when fiveMinButton is clicked. Why doesn\'t this code work? @IBAction
You are writing the action method inside the viewDidload, Try this:
override func viewDidLoad() {
super.viewDidLoad()
fiveMinButton.addTarget(self, action: #selector(action(_:)), for: UIControlEvents.touchUpInside)
}
func action(sender: UIButton){
if sender == fiveMinButton {
fiveMinButton.backgroundColor = UIColor.gray
tenMinButton.backgroundColor = UIColor.lightgray
}
}
There is 2 problems with your code.
selector
is wrongviewDidLoad
that will also wrong, so write that method outside the viewDidLoad
as class method. For first one change selector like this.
fiveMinButton.addTarget(self, action: #selector(action(sender:)), for: UIControlEvents.touchUpInside)
For second problem just write action out side the viewDidLoad
.
If button type rounded rect ..Color cannot be applied. So set the button to type custom and good to go
self.myButton.backgroundColor = UIColor.redColor()
or you can set the background image or image to the button to gain the color
self.myButton.setBackgroundImage(UIImage.imageNamed("myButtonImage.png"), forState: UIControlStateNormal)
or
self.myButton.setImage(UIImage.imageNamed("myButtonImage.png"), forState: UIControlStateNormal)