O que exatamente removeOnCompletion = NO faz?

CAAnimation fornece a propriedade removedOnCompletion cujo padrão é YES.

Vamos reconhecer estes fatos:

A) Core Animation afeta apenas a Árvore de Apresentação, mas não a Árvore Modelo. Quando uma animação é concluída, você acaba vendo o que está definido na Árvore Modelo. Você pode definir um fillMode como kCAFillModeBoth, por exemplo, que trocará o valor da Árvore de Apresentação para a Árvore Modelo depois que a animação for concluída. Isso faz com que sua animação não seja revertida (o que provavelmente é o que você deseja).

B) Eu fiz um experimento. removedOnCompletion = NO seráNÃO têm o mesmo efeito que kCAFillModeBoth ou kCAFillModeForwards. Para ser mais preciso: não tem absolutamente nenhum efeito na aparência do resultado quando a animação é concluída. Se ele é "removido" ou não, parece não afetar a Árvore de Apresentação.

Para explicar o que o RemoveOnCompletion realmente faz, a documentação é muito fraca nesse sentido. Eu não entendo. Alguém pode explicar o que exatamente seria removido e qual é o benefício de não removê-lo?

Meu palpite é que a Apple está falando sobre o próprio objeto animador, que é adicionado à camada com -addAnimation: forKey: ... mas novamente: qual é o sentido de mantê-lo por perto?

questionAnswers(3)

yourAnswerToTheQuestion