Is there a way to setTitle on a UIButton that updates all UIControlStates at once?
iphone, swift
Solution
According to the documentation you should only need to call:
In Objective-C:
[myButton setTitle:@"Play" forState:UIControlStateNormal];
In Swift:
myButton.setTitle("Play", for: .normal)
The UIButton docs explain why:
In general, if a property is not specified for a state, the default is to use the UIControlStateNormal value. If the value for UIControlStateNormal is not set, then the property defaults to a system value. Therefore, at a minimum, you should set the value for the normal state.
Namely, that if you only set the normal value the other states will refer to it when being set.
Problem
I have a UIButton, and I'd like to update its title, but I'd rather not have to always do it for each and every state like the following: ``` [myButton setTitle:@"Play" forState:UIControlStateNormal]; [myButton setTitle:@"Play" forState:UIControlStateHighlighted]; [myButton setTitle:@"Play" forState:UIControlStateSelected]; ``` Is there a better way?