无限循环上的动画 [英] animations on infinite loop

查看:128
本文介绍了无限循环上的动画的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有5种不同的动画,动画然后一个接一个地消失。有没有办法把它们放在无限循环上,所以动画#1开始和结束,然后动画#2开始和结束等...?然后整个过程将在无限循环中重复。

I have 5 different animations that animate then disappear one after another. Is there a way to put them on an infinite loop so animation #1 begins and ends, then anim #2 begins and ends etc..? the whole process then would repeat on an infinite loop.

我在延迟的单独块中有动画。我猜这有更好的方法。这就是我现在所拥有的:

I have the animations in separate blocks on delays. I'm guessing that there is a better way of doing this. this is what I have at the moment:

-(void) firstAnimation {

        [UIView beginAnimations:@"Fade Out Image" context:nil];
        [UIView setAnimationDelegate:self];
        [UIView setAnimationDelay:40];
        [UIView setAnimationRepeatCount:30];
        [UIView setAnimationRepeatAutoreverses:YES]; 
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        theImage.alpha = 1;
        theImage.alpha = 0.1;

        [UIView commitAnimations];

        [self secondAnimation];

}

-(void) secondAnimation {

        tapImage2.hidden = NO;

        [UIView beginAnimations:@"Fade Out Image" context:nil];
        [UIView setAnimationDelegate:self];
        [UIView setAnimationDelay:53];
        [UIView setAnimationRepeatCount:29];
        [UIView setAnimationRepeatAutoreverses:YES];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        theImage2.alpha = 1;
        theImage2.alpha = 0.1;      

        [UIView commitAnimations];

    [self thirdAnimation];

}

然后继续播放5个动画。感谢您的帮助。

this then goes on for 5 animations. thanks for any help.

推荐答案

不要使用延迟,而是设置动画委托并创建动画完成方法。我注意到你已经设置了委托。

Instead of using the delay, set the animation delegate and create an animation done method. I notice you are already setting the delegate.

[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationFinished:finished:context:)];

- (void)animationFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context {
    //Start next animation based on the animationID of the last one...
}

这篇关于无限循环上的动画的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆