动画CALayer隐藏

Tom*_*ing 5 cocoa objective-c calayer cabasicanimation

我试图CALayer在几微秒后隐藏a ,然后使用CABasicAnimation动画对隐藏进行动画处理。

目前,我正在尝试使用

[aLayer setHidden:YES];

CABasicAnimation * hideAnimation = [CABasicAnimation animationWithKeyPath:@"hidden"];
[hideAnimation setDuration:aDuration];
[hideAnimation setFromValue:[NSNumber numberWithBool:NO]];
[hideAnimation setToValue:[NSNumber numberWithBool:YES]];
[hideAnimation setBeginTime:0.09];
[hideAnimation setRemovedOnCompletion:NO];
[hideAnimation setDelegate:self];

[alayer addAnimation:hideAnimation forKey:@"hide"];
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此命令时,该层将立即隐藏,而不是等待所需的beginTime。

我不确定我的keyPath是否为“隐藏”,但找不到其他任何选择,并且文档确实指出a的hidden属性CALayer是可动画的。

实现我正在寻找的正确方法是什么?

Ale*_*lex 3

尝试对不透明度属性进行动画处理。从 1.0 到 0.0,您应该会得到您想要的效果。

  • 如果您希望它立即改变而不是淡出,您可以在 CAKeyframeAnimation 中使用“calculationMode”的“kCAAnimationDiscrete”值。您还应该将“fillMode”属性设置为“kCAFillModeBoth”。 (2认同)