[CAAnimation提供了默认值为YES的removeOnCompletion属性。
让我们认识这些事实:
A)核心动画仅影响表示树,而不影响模型树。完成动画后,您最终会看到在模型树中设置的任何内容。例如,您可以将fillMode设置为kCAFillModeBoth,一旦完成动画,它将把Presentation Tree中的值交换为Model Tree。这会使您的动画不还原(这很可能是您想要的)。
B)我做了一个实验。 removeOnCompletion = NO将NOT与kCAFillModeBoth或kCAFillModeForwards具有相同的效果。更精确地说:完成动画后,结果完全不受影响。无论它是否被“删除”,它似乎根本不影响表示树。
为了解释removeOnCompletion的真正作用,在这方面文档太弱。我不明白任何人都可以解释将要删除的内容到底是什么,不删除它有什么好处?
我的猜测是苹果公司正在谈论动画对象本身,它是通过-addAnimation:forKey:...添加到图层中的,但是再说一遍:保持它的意义何在?
[YES
-如果仅打算使用动画一次,则无需使用委托方法在完成时从图层中删除动画。
fillMode
:
此属性控制动画完成时在视觉上发生的情况,具体取决于指定的填充模式的类型。
animationKeys
进行轮询(您是否需要这样做),是否已经完成。