How to stop unwanted UIButton animation on title change?

exsulto picture exsulto · Sep 22, 2013 · Viewed 53.9k times · Source

In iOS 7 my UIButton titles are animating in and out at the wrong time - late. This problem does not appear on iOS 6. I'm just using:

[self setTitle:text forState:UIControlStateNormal];

I would prefer this happens instantly and without a blank frame. This blink is especially distracting and draws attention away from other animations.

Answer

Snowman picture Snowman · Feb 28, 2014

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];
}];