How to stop unwanted UIButton animation on title change?
Use the performWithoutAnimation:
method and then force layout to happen immediately instead of later on.
[UIView performWithoutAnimation:^{ [self.myButton setTitle:text forState:UIControlStateNormal]; [self.myButton layoutIfNeeded];}];
This works for custom buttons:
[UIView setAnimationsEnabled:NO];[_button setTitle:@"title" forState:UIControlStateNormal];[UIView setAnimationsEnabled:YES];
For system buttons you need to add this before re-enabling animations (thank you @Klaas):
[_button layoutIfNeeded];
In Swift you can use :
UIView.performWithoutAnimation { self.someButtonButton.setTitle(newTitle, forState: .normal) self.someButtonButton.layoutIfNeeded()}