2010-05-28 65 views
0

我使用的代碼下面幾行動畫:iphone動畫 - 捕通知

CATransition *animation = [self getAnimation:dirString]; 
    [[self view] exchangeSubviewAtIndex:0 withSubviewAtIndex:1]; 
    [[[self view] layer] addAnimation:animation forKey:kAnimationKey]; 

動畫結束後,我想播放聲音。 如何在動畫完成時獲得通知?

回答

1

CATransition是CAAnimation的子類,因此它繼承(除其他之外)delegate屬性和代表方法animationDidStop:finished:。在您想要處理事件的任何類中定義該方法,並將動畫的delegate屬性設置爲該類的對象。當動畫結束時,animationDidStop:finished:消息被髮送給委託人。

例如:

AnimationDelegate.m 
@implementation AnimationDelegate 

- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag 
{ 
    //Handle whatever needs to be done after the animation stops 
} 

ClassUsingAnimation.m 
@implementation ClassUsingAnimation 
{ 
    AnimationDelegate *customDelegate = [[AnimationDelegate alloc] init]; 
    CATransition *animation = [self getAnimation:dirString]; 
     animation.delegate = customDelegate; 
     [[self view] exchangeSubviewAtIndex:0 withSubviewAtIndex:1]; 
     [[[self view] layer] addAnimation:animation forKey:kAnimationKey]; 
    [customDelegate release]; 
}