2

その中にCALayer画像があり、いくつかのサブレイヤーがあります。コンテンツを持たないように (画像なしで) アニメートしたいのですが、サブレイヤーは表示し続けます。このコードは機能しません:

   CABasicAnimation *backgroundOut = [CABasicAnimation animationWithKeyPath:@"contents"];
   backgroundOut.toValue = [NSNull null];
   backgroundOut.fillMode = kCAFillModeForwards;
   backgroundOut.removedOnCompletion = NO;
   backgroundOut.duration = 3.0;
   [_backgroundLayer addAnimation:backgroundOut forKey:@"contents"];

これを機能させる唯一の方法は次のとおりです。

   backgroundOut.toValue = (__bridge id)([UIImage imageNamed:@"blankImage"].CGImage); 

このレイヤーにはまだ表示する必要があるサブレイヤーがあるため、不透明度などを台無しにしたくないことに注意してください。

空のコンテンツにアニメーション化する適切な方法は何ですか?

4

2 に答える 2

0

別のアプローチは、他のレイヤーのピアであるが、他のレイヤーのすぐ後ろにある画像を含む別のレイヤーを作成することです (zposition を使用して、明示的に他のレイヤーの後ろに配置できます)-すべてルートレイヤー内に含まれます. 次に、イメージ レイヤーのアルファをフェード用にアニメートすることができます。オンザフライでイメージを作成するオーバーヘッドがなく、他のレイヤーがフェードすることもありません。

于 2013-10-09T15:30:20.093 に答える