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];
}
ただし、最初の 2 つのオブジェクトのみが正しくフェードし、他のすべてのオブジェクトはまったくフェードしません。animationDidStop にブレークポイントを設定すると、開始されていないほとんどのアニメーションが既に停止していることに気付きました (60 秒後に開始されるはずのアニメーションでさえ、最初の数秒以内に停止します)。何が起こっているのか正確にはわかりません。各 CALayer の不透明度を手動で 1 に設定すると正しく表示されますが、アニメーション化すると正しく表示されません。