UIButton动画无法正常工作

时间:2011-02-18 01:00:46

标签: ios animation uiview uibutton

请参阅下面的评论代码。为什么UIButton的行为与UIView不同?

//button creation
UIButton *myBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[myBtn setImage:[UIImage imageNamed:@"someImage"] forState:UIControlStateNormal];
self.myButton = myBtn;

...
///in the button target method:

UIView* test = [[UIView alloc] initWithFrame:self.myButton.frame];
test.backgroundColor = [UIColor redColor];
[buttonContainer addSubview:test];

[UIView beginAnimations:@"SomeAnimation" context:nil];
[UIView setAnimationDuration:5];
[UIView setAnimationDelegate:self];
self.myButton.frame = CGRectMake(100,100,200,200); //the position animates smoothly, but the size snaps to 200,200 immediately
//test.frame = CGRectMake(100,100,200,200); //this works perfectly. the position and size both animate smoothly over the 5 seconds.
[UIView commitAnimations];

1 个答案:

答案 0 :(得分:4)

@implementation UIButton(fixResizeAnimation)

- (void)setFrame:(CGRect)_frame {
  [super setFrame:_frame];
  for(UIView* v in self.subviews) {
    if([v isKindOfClass:[UIImageView class]]) {
      [v setFrame:_frame];
    }
  }
}

@end

请尝试!