UIView动画完成回调?

时间:2010-07-02 14:04:50

标签: ios objective-c uiview iphone-sdk-3.0

我的动画完成后可以设置要调用的函数吗?我想淡化UIView,然后将其从superView中移除。

2 个答案:

答案 0 :(得分:37)

动画块在iOS4中引入。 Apple建议您使用这些,并且新方法主要要求替换回调的完成块。例如:

[UIView animateWithDuration:0.5f
                      delay:0.0f
                    options:UIViewAnimationCurveEaseInOut
                 animations:^{
                   [myView setAlpha:0.0f];
                 }
                 completion:^(BOOL finished) {
                   [myView removeFromSuperview];
                 }]; 

答案 1 :(得分:25)

是的,这很简单:

配置动画时

[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(myAnimationStopped:finished:context:)];

并定义您的方法,如:

-(void)myAnimationStopped:(NSString *)animationID 
                 finished:(NSNumber *)finished
                  context:(void *)context {
   // fancy code here
}

当然不一定是self和那种方法。