CAAnimation提供了removedOnCompletion属性,默认值为YES。
让我们认识到以下事实:
A)核心动画只影响Presentation Tree,而不影响Model Tree。当动画完成时,您最终会看到在Model Tree中设置的任何内容。例如,您可以设置fillMode为kCAFillModeBoth,这将在动画完成后将Presentation Tree中的值与Model Tree交换。这使得您的动画不会恢复(这很可能是您想要的)。
B)我进行过实验。removedOnCompletion = NO将不会产生与kCAFillModeBoth或kCAFillModeForwards相同的效果。更准确地说:它对动画完成后结果的外观没有任何影响。无论它是否“被移除”,似乎都不会影响Presentation Tree。
要解释removedOnCompletion的真正作用,文档在这方面太薄弱了。我不明白。有人能解释一下究竟会删除什么,以及不删除的好处是什么吗?
我猜Apple指的是动画师对象本身,该对象使用-addAnimation:forKey:添加到图层中...但再次:保留它的点是什么?