究竟removeOnCompletion = NO究竟做了什么?

Pro*_*ber 13 iphone core-animation ios

CAAnimation提供removedOnCompletion属性,默认为YES.

让我们认识到这些事实:

A)核心动画仅影响表示树,但不影响模型树.完成动画后,您最终会看到模型树中设置的内容.例如,您可以将fillMode设置为kCAFillModeBoth,一旦动画完成,它将把表示树中的值交换到模型树.这会导致您的动画无法恢复(这很可能是您想要的).

B)我做了一个实验.removedOnCompletion = NO将NOT具有如kCAFillModeBoth或kCAFillModeForwards相同的效果.更确切地说:完成动画时结果的效果绝对没有影响.无论是否"删除",它似乎都不会影响演示树.

为了解释removeOnCompletion真正做了什么,文档在这方面太弱了.我不明白.任何人都可以解释究竟会被删除的内容,以及没有删除它的好处是什么?

我的猜测是Apple正在谈论动画对象本身,它使用-addAnimation添加到图层:forKey:...但是又一次:保持它的重点是什么?

an0*_*an0 13

如果removedOnCompletion是,则动画将在完成时删除,并且根本没有任何"填充".所以如果你想使用fillMode你必须设置removedOnCompletionNO.


Eva*_*ski 12

removedOnCompletion:

基本上,当动画完成时,动画是从图层的动作中移除的.

YES - 如果您只想使用动画一次,则不需要使用委托方法在完成时从图层中删除动画.

fillMode:

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