CABasicAnimation在它开始之前停止了吗?

时间:2011-09-16 08:01:55

标签: objective-c xcode core-animation caanimation

我需要淡入我的CALayers。这是我的代码:

    for(int i = 0; i < viewArray.count; i++)
    {
        CABasicAnimation *fadeIn = [CABasicAnimation animationWithKeyPath:@"opacity"];
        fadeIn.duration = 0.3;
        fadeIn.beginTime = i;
        fadeIn.fromValue = [NSNumber numberWithFloat:0.0];
        fadeIn.toValue = [NSNumber numberWithFloat:0.8];
        fadeIn.removedOnCompletion = NO;
        fadeIn.delegate = self;
        [((CALayer*)[viewArray objectAtIndex:i]) addAnimation:fadeIn forKey:nil];
    }

但是,只有前两个对象正常消失,所有其他对象根本不会消失。我注意到当我在animationDidStop上放置一个断点时,大多数尚未启动的动画已经停止(即使是应该启动60秒的动画也会在前几秒内停止)。我不确定发生了什么。当我手动将每个CALayer的不透明度设置为1时,我可以正确地看到它,但在动画时不能。

1 个答案:

答案 0 :(得分:4)

您正在同时启动所有动画,因为对addAnimation:forKey:的调用不会同步等到动画完成。

我检查了它,似乎你必须以下列方式设置beginTime

fadeIn.beginTime = CACurrentMediaTime() + i;