1

我试图在 xcode 中淡化几个背景图像。它们是动画的,但不会褪色,请参见下面的代码:

animationgirl.animationImages = [NSArray arrayWithObjects:

                             [UIImage imageNamed:@"girl1.png"],
                             [UIImage imageNamed:@"girl2.png"],
                             [UIImage imageNamed:@"girl3.png"],
                             [UIImage imageNamed:@"girl4.png"],
                             [UIImage imageNamed:@"girl5.png"],
                             [UIImage imageNamed:@"girl6.png"],
                             [UIImage imageNamed:@"girl7.png"],
                             [UIImage imageNamed:@"girl8.png"],
                             [UIImage imageNamed:@"girl9.png"],
                             [UIImage imageNamed:@"girl10.png"],
                             [UIImage imageNamed:@"girl11.png"],
                             [UIImage imageNamed:@"girl12.png"],
                             [UIImage imageNamed:@"girl13.png"],
                             [UIImage imageNamed:@"girl14.png"],nil];

[animationgirl setAnimationRepeatCount:0];
animationgirl.animationDuration = 1.8;
[animationgirl startAnimating];
4

1 回答 1

0

在图像之间转换时,设置animationImages不支持额外的淡入/淡出效果。

您可以做的是创建一个CAKeyframeAnimation并为其提供您要设置动画的图像数组,例如:

    NSArray* contents = <NSArray of UIImages>;

    CAKeyframeAnimation* animation = [CAKeyframeAnimation animationWithKeyPath:@"contents"];
    [animation setCalculationMode:kCAAnimationLinear];
    [animation setDuration:contentsAnimationDuration];
    [animation setRepeatCount:HUGE_VALF];
    [animation setValues:contents];        

    [self.layer addAnimation:animation forKey:@"contents"];

为了使用 Core Animation,您必须链接 Quartz 框架并包含相关的头文件。

你也可以给你一个我为此目的写的 CALayer 类别

于 2013-11-29T09:07:50.567 回答