完成动画后想要调用一些方法

时间:2012-01-05 10:45:34

标签: iphone objective-c xcode cocoa-touch animation

在我的iPhone应用程序中

我正在做某些动画。  像

[UIView beginAnimations:@"stalk" context:nil];
    [UIView setAnimationDuration:1];
    [UIView setAnimationBeginsFromCurrentState:YES];
    self.frame=originalSelf;
    [UIView commitAnimations];

完成此动画后,我想要调用一些方法......

我知道一些阻止动画或

DidStopAnimation通知

我该怎么做...... 感谢..

3 个答案:

答案 0 :(得分:11)

在iOS 4及更高版本中,建议使用块来实现此目的:

[UIView animateWithDuration:1 
                     animations:^{
                         self.frame=originalSelf;} 
                     completion:^(BOOL finished){

                        //My method call;
                     }
     ];

答案 1 :(得分:5)

尝试使用

[UIView beginAnimations:@"stalk" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(afterAnimationStops)]
self.frame=originalSelf;
[UIView commitAnimations];

然后你可以实现方法

-(void)afterAnimationStops{

}

答案 2 :(得分:2)

使用此:

animateWithDuration:animations:completion:

以下是更多信息:http://developer.apple.com/library/IOs/#documentation/UIKit/Reference/UIView_Class/UIView/UIView.html

以下是一个例子:

[UIView animateWithDuration:1.0 animations:^{self.frame=originalSelf;} completion:^(BOOL finished){/*have your completion code here*/}];