我試圖在幾微秒後隱藏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