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