1

2 つのコード ブロックがあります (別のトピックでも説明されています) 。

- (void)AnimateImage:(NSString*)direction{
    self.CurrentAnimal.image = [images objectAtIndex:image_nr];
    CATransition *animation = [CATransition animation];
    [animation setDuration:1.0];
    [animation setType:kCATransitionPush];
    if([direction isEqualToString:@"left"]){
        [animation setSubtype:kCATransitionFromLeft];
    }
    else {
        [animation setSubtype:kCATransitionFromRight];
    }
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]];
    [[self.CurrentAnimal layer] addAnimation:animation forKey:nil];
}

- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
{
    //do what you need to do when animation ends...
}

animationDidStop イベントをキャッチするには、「デリゲート プロパティを設定してメソッドを実装する」必要があることはわかっていますが、それを機能させることはできません。

質問 - CATransition アニメーションが停止したときにこのメソッドを使用してコードを実行できるように、.h および .m ファイルを設定するにはどうすればよいですか?

4

2 に答える 2

1

デリゲートを設定します。

CATransition *animation = [CATransition animation];
....
[animation setDelegate:self];
[animation setDuration:1.0];
[animation setType:kCATransitionPush];
于 2013-10-09T19:46:06.983 に答える