【问题标题】:animation blocks infinite loop - iphone动画块无限循环 - iphone
【发布时间】:2010-10-14 12:52:55
【问题描述】:

我在处理动画块时遇到了困难。我试图让第一个动画改变图像的 alpha 使其闪烁,然后在 10 秒后消失。 firstAnimation 然后移动到 secondAnimation ,它只对不同的图像执行相同的操作。然后这个过程会无限重复。

我已经为此工作了一段时间,无法让它无限重复。我遇到的另一个问题是这个动画过程延迟 - 所以它在 20 秒后开始,足够播放音频文件的时间。

- (void) firstAnimation {
            UIViewAnimationOptions options = UIViewAnimationOptionCurveLinear;

            [UIView animateWithDuration:1.0 delay:10.0 options:options animations:^ 
            {
                    myImage.alpha = 0.0;
                    myImage.alpha = 1.0;

            }

                    completion:^(BOOL finished){

                    [self secondAnimation]; 
            }
             ];

    }

一如既往地感谢您的帮助。我搜索了示例代码和教程,但我发现的基本上都是我在上面的代码中所做的。

【问题讨论】:

    标签: iphone animation uiimageview codeblocks


    【解决方案1】:

    我认为您必须在动画块之外设置 alpha 的初始值,并且只设置您希望它在块内设置动画的值。

    UIViewAnimationOptions options = UIViewAnimationOptionCurveLinear;
    myImage.alpha = 0.0;
    [UIView animateWithDuration:1.0 delay:10.0 options:options animations:^ 
            {
                    myImage.alpha = 1.0;
    
            }
    

    【讨论】:

    • 谢谢!效果很好。你知道我怎么能把它放在一个无限循环上吗?再次感谢
    • 您应该能够通过以上述方式链接函数来实现这一点。第一个动画调用第二个调用第一个等。比这更复杂,我建议使用 NSTimer 每隔 X 秒调用一次 firstanimation 函数,直到无穷大。
    • 好的,谢谢。也许我应该使用 NSTimer,因为我希望动画在音频剪辑播放后开始。
    【解决方案2】:
    animateImageWithCount:(int)aCount{
        if( aCount >= [imageArray count]){
            NSLog(@"Done all images");
            return;
        }
    
        UIImage *myImage = [ImageArray objectAtIndex:aCount];
        UIViewAnimationOptions options = UIViewAnimationOptionCurveLinear;
    
        myImage.alpha = 0.0;
        [UIView animateWithDuration:1.0 delay:10.0 options:options animations:^{
            myImage.alpha = 1.0;
        }
        completion:^(BOOL finished){
            [self animateImageWithCount:(aCount+1)];
         }];
    }
    

    【讨论】:

    • 哇。你认真地为我节省了一些时间。我一直在寻找解决方案几个小时,你的很漂亮。谢谢!
    猜你喜欢
    • 2014-07-08
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 2022-08-16
    相关资源
    最近更新 更多