2
我希望從其超級層中移除CALayer而無需動畫。這裏發生的是層動畫到一個位置,很好,當動畫停止時,這個代碼被執行,它將圖層返回到它的開始位置並淡出;大概會從超級玩家身上移除。如何停止動畫-removeFromSuperlayer?此處列出的代碼對所有包含註釋的變體都有相同的行爲,這些變體未被註釋並且未被註釋,交易或沒有交易。我錯過了什麼?無法禁用CALayer的動畫>> removeFromSuperlayer
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{
//[self setHidden: YES];
//[CATransaction flush];
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue
forKey:kCATransactionDisableActions];
//[CATransaction setDisableActions: YES];
//[CATransaction setAnimationDuration: 0];
[self removeFromSuperlayer];
[CATransaction commit];
}
我一直在四處搜尋,而且這段代碼和我發現的沒有什麼不同。
非常好!到目前爲止,我不知道Actions,謝謝! 現在圖層不會返回到初始位置,並且漸變 - 現在只是暫時返回初始位置(如閃爍,添加了「子圖層」和「onOrderOut」)。我可以在這裏添加另一個問題,在動畫之後如何離開它們結束的圖層?再次感謝!〜(如果可以,請投票) – humasect 2010-06-29 00:11:57
@humasect - 嘗試將動畫的fillMode設置爲kCAFillModeForwards,並將removedOnCompletion設置爲NO。 – 2010-06-29 02:38:42
哇,這是一些工作後動畫刪除一些圖層!但我會認爲默認設置對於更常見的任務來說更好,而且這個功能完美無缺 - 謝謝! +1 – humasect 2010-06-29 03:39:46