How to stop unwanted UIButton animation on title change? How to stop unwanted UIButton animation on title change? objective-c objective-c

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()}