How to change UIButton state programmatically in Swift

Oleh Liskovych picture Oleh Liskovych · Apr 13, 2017 · Viewed 26.5k times · Source

I develop app for drawing on screen. I have toolpanel with bunch of buttons. Some of them have to become disabled or pressed depending on current user action. How can I change UIControlState of buttons programmatically considering that "state" property is readonly? If it's impossible, what is alternative for this purpose?

Answer

Duncan C picture Duncan C · Apr 13, 2017

I think you're confused. UIControlState is used to set up target/actions, or to change the appearance of the button for specific states (So, for example, you can specify the image that's used when it's selected, and a different image for when the button is not in the selected state.)

If you want to change the state to selected, you just set the selected property.

button.isSelected = true

Likewise for isEnabled:

button.isEnabled = false //disable the button