4

动画结束后我想做一些动作。

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.80f];
self.view.transform = 
CGAffineTransformMakeTranslation(
                                 self.view.frame.origin.x, 
                                 480.0f + (self.view.frame.size.height/2)  // move the whole view offscreen
                                 );
[self.view setAlpha:0];
[UIView commitAnimations];

我已经完成了上面的动画,如何找出动画结束,这样我就可以在那之后做我的动作。

4

5 回答 5

7

用这个:

    [UIView animateWithDuration:0.80f animations:^{
    self.view.transform =
    CGAffineTransformMakeTranslation(
                                     self.view.frame.origin.x,
                                     480.0f + (self.view.frame.size.height/2)  // move the whole view offscreen
                                     );
    [self.view setAlpha:0];
    }
    completion:^(BOOL finished){
        // your code
    }];
于 2012-08-16T10:37:38.157 回答
7

将此添加到您的动画中:

[UIView setAnimationDidStopSelector:@selector(myAnimationEnded)];
[UIView setAnimationDelegate:self];

这个方法会告诉你什么时候停止;

- (void)myAnimationEnded{
     NSLog(@"animation ended");
}
于 2012-08-16T10:38:13.493 回答
4

使用UIView's-animateWithDuration:animations:completion:类方法。

[UIView animateWithDuration:0.8 animations:^{
        CGAffineTransformMakeTranslation(
                                         self.view.frame.origin.x, 
                                         480.0f + (self.view.frame.size.height/2)  // move the whole view offscreen
                                         );
        [self.view setAlpha:0];

    } completion:^(BOOL finished) {
        //this block is called when the animation is over
    }];
于 2012-08-16T10:40:25.590 回答
0

之后写你的代码[UIView commitAnimations];。动画保持在beginAnimations和之间commitAnimations

于 2012-08-16T10:36:15.723 回答
0

不是那个setAnimationDelegate

在 iOS 4.0 及更高版本中不鼓励使用此方法。如果您使用基于块的动画方法,您可以直接在块中包含代理的开始和结束代码。

于 2016-05-17T19:13:10.233 回答