how to change bordercolor when Button.isHighlighted

swift

Solution

The actions you are looking for are `.touchDown` and anything `.touchUp`:

override func viewDidLoad() {
    super.viewDidLoad()
    theButton.setTitle("Normal", for: .normal)
    theButton.setTitle("Highlighted", for: .highlighted)
    theButton.layer.borderColor = UIColor.red.cgColor
    theButton.layer.borderWidth = 1
    theButton.addTarget(self, action: #selector(startHighlight), for: .touchDown)
    theButton.addTarget(self, action: #selector(stopHighlight), for: .touchUpInside)
    theButton.addTarget(self, action: #selector(stopHighlight), for: .touchUpOutside)
}
func startHighlight(sender: UIButton) {
    theButton.layer.borderColor = UIColor.green.cgColor
    theButton.layer.borderWidth = 1
}
func stopHighlight(sender: UIButton) {
    theButton.layer.borderColor = UIColor.red.cgColor
    theButton.layer.borderWidth = 1
}

Problem

I wonder how I get my border around my `UIButton` to change opacity together with the text inside it, when it is either clicked or highlighted. My logic tells me, that it should be something like this.. but it doesn't seem to work: ``` //BTN STYLING btnstd.layer.cornerRadius = 5 btnstd.layer.borderWidth = 1.5 btnstd.layer.borderColor = UIColor.white.cgColor //Change bordercolor when highlighted if(btnstd.isHighlighted) { btnstd.layer.borderColor = UIColor(white:1,alpha:0.3).cgColor } ``` This is by the way put inside my `ViewDidLoad()` function

Original source

Related problems