我需要淡入我的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时,我可以正确地看到它,但在动画时不能。
答案 0 :(得分:4)
您正在同时启动所有动画,因为对addAnimation:forKey:
的调用不会同步等到动画完成。
我检查了它,似乎你必须以下列方式设置beginTime
fadeIn.beginTime = CACurrentMediaTime() + i;