2011年1月9日日曜日

連続アニメーション

複数のアニメーションを連続して再生させるには、1つのアニメーションの終了を検知し、その後、続きのアニメーションを再生させます。

アニメーションの終了は「setAnimationDidStopSelector:finished:context:」でアニメーションの終了メソッドを登録しておきます。


[UIView beginAnimations:@"Animation1" context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationFinished:finished:context:)];
// imgViewはUIImageViewのインスタンス
imgView.frame = CGRectMake(100, 200, imgView.frame.size.width, imgView.frame.size.height);
[UIView commitAnimations];



- (void)animationFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context
{
if ([animationID isEqualToString:@"Animation1"]) {
[UIView beginAnimations:@"Animation2" context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
imgView.frame = CGRectMake(100, 50, imgView.frame.size.width, imgView.frame.size.height);
[UIView commitAnimations];


上記例では、イメージ(imgView)を1秒間かけて(100, 200)に移動した後、続いて0.5秒間かけて(100, 50)に移動させます。

0 件のコメント:

コメントを投稿