CAAnimation zapewnia właściwość removedOnCompletion, która domyślnie przyjmuje wartość YES.Co dokładnie robi removeOnCompletion = NO?
Niech rozpoznać te fakty:
A) Core Animation wpływa tylko Prezentacja drzewa, ale nie drzewie modelu. Po zakończeniu animacji zobaczysz wszystko, co jest ustawione w drzewie modelu. Możesz na przykład ustawić fillMode na kCAFillModeBoth, który zamieni wartość z drzewa prezentacji na drzewo modelu po zakończeniu animacji. To powoduje, że animacja nie powraca (co jest najbardziej prawdopodobne).
B) Przeprowadziłem eksperyment. removedOnCompletion = NO będzie NOT ma taki sam efekt jak kCAFillModeBoth lub kCAFillModeForwards. Aby być bardziej precyzyjnym: Nie ma to absolutnie żadnego wpływu na wygląd wyniku po zakończeniu animacji. Czy jest "usunięty", czy nie, wydaje się, że w ogóle nie wpływa na Drzewo Prezentacji.
Aby wyjaśnić, co tak naprawdę zrobił removeOnCompletion, dokumentacja jest zbyt słaba w tym zakresie. Nie rozumiem tego. Czy ktoś może wyjaśnić, co dokładnie zostałoby usunięte i jaka jest korzyść z tego, że go nie usunięto?
Domyślam się, że Apple mówi o samym obiekcie animatora, który jest dodawany do warstwy za pomocą -addAnimation: forKey: ... ale jeszcze raz: jaki jest cel jej utrzymania?
tak fillmode nie wykazuje żadnego wpływu, ponieważ usuwamy animację, aby obiekt powrócił do pierwotnego stanu –