removeOnCompletion究竟是什么=否?

问题描述 投票:13回答:4

[CAAnimation提供了默认值为YES的removeOnCompletion属性。

让我们认识这些事实:

A)核心动画仅影响表示树,而不影响模型树。完成动画后,您最终会看到在模型树中设置的任何内容。例如,您可以将fillMode设置为kCAFillModeBoth,一旦完成动画,它将把Presentation Tree中的值交换为Model Tree。这会使您的动画不还原(这很可能是您想要的)。

B)我做了一个实验。 removeOnCompletion = NO将NOT与kCAFillModeBoth或kCAFillModeForwards具有相同的效果。更精确地说:完成动画后,结果完全不受影响。无论它是否被“删除”,它似乎根本不影响表示树。

为了解释removeOnCompletion的真正作用,在这方面文档太弱。我不明白任何人都可以解释将要删除的内容到底是什么,不删除它有什么好处?

我的猜测是苹果公司正在谈论动画对象本身,它是通过-addAnimation:forKey:...添加到图层中的,但是再说一遍:保持它的意义何在?

iphone ios core-animation
4个回答
12
投票
基本上是在完成动画后从该图层的动作中删除该动画。

[YES-如果仅打算使用动画一次,则无需使用委托方法在完成时从图层中删除动画。

fillMode

此属性控制动画完成时在视觉上发生的情况,具体取决于指定的填充模式的类型。


13
投票

0
投票

0
投票
尽管您没有使用它们仍会徘徊的动画可能会消耗能量和带宽,并弄乱您的逻辑,因为您无法再检查animationKeys进行轮询(您是否需要这样做),是否已经完成。
© www.soinside.com 2019 - 2024. All rights reserved.