So there seems to be an issue with animating size transformations for UIButtons. Specifically, if you have a button of type UIButtonTypeCustom, any frame size transformations happen instantly. Movement and other animations happen as normal.
Does anyone have a good fix for this? I m guessing that it s because the custom buttons contain images, and something is going wrong when UIView calculates its transformations.
This guy seems to have found the same problem, but no workaround.
Here s an example. The image origin will move smoothly from 0.0,0.0 to 100.0,100.0 over two seconds, but the size instantly jumps to 200x200.
UIButton *tButton = [UIButton buttonWithType:UIButtonTypeCustom];
[tButton setBackgroundImage:tImage forState:UIControlStateNormal];
tButton.frame = CGRectMake(0.0, 0.0, 10.0, 10.0);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:2.0];
tButton.frame = CGRectMake(100.0, 100.0, 200.0, 200.0);
[UIView commitAnimations];