我试图在几微秒后隐藏CALayer
,并且我使用CABasicAnimation
来为隐藏设置动画。动画CALayer隐藏
目前,我试图用
[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"];
但是当我运行此,该层立即隐藏,而不是等待所需BEGINTIME。
我不确定我的keyPath为“隐藏”,但找不到任何其他选项,并且文档确实声明CALayer
的hidden
属性是可动画的。
什么是正确的方法来实现我在找什么?
如果您希望它立即更改而不是淡出,您可以使用'calculationMode'的'kCAAnimationDiscrete'值进行CAKeyframeAnimation。 您还应该将'fillMode'属性设置为'kCAFillModeBoth'。 – 2010-07-15 23:02:10
谢谢,我一定会研究它,但是有什么理由说明我目前在做什么不工作?只是为了满足我的好奇:) – 2010-07-15 23:06:30
不幸的是,使用opacity并没有改变任何东西。该图层立即隐藏/变为透明,完全忽略动画。即使我的持续时间大约是100秒(仅用于测试目的),我也会立即调用animationDidStop的委托方法。 – 2010-07-16 16:13:44