CAAnimation предоставляет свойство removeOnCompletion со значением по умолчанию YES.
Давайте признаем эти факты:
A) Базовая анимация влияет только на дерево презентаций, но не на дерево моделей.Когда анимация завершена, вы видите все, что установлено в дереве моделей.Например, вы можете установить для fillMode значение kCAFillModeBoth, которое будет заменять значение из дерева презентаций на дерево моделей после завершения анимации.Это приводит к тому, что ваша анимация не возвращается назад (что, скорее всего, вам и нужно).
B) Я провел эксперимент.removeOnCompletion = NO будет NOT иметь тот же эффект, что и kCAFillModeBoth или kCAFillModeForwards.Чтобы быть более точным: он абсолютно не влияет на то, как выглядит результат, когда анимация завершена.Независимо от того, «удалено» оно или нет, похоже, что оно вообще не влияет на Дерево презентаций.
Чтобы объяснить, что на самом деле делает removeOnCompletion, документация слишком слаба в этом отношении.Я не понимаюМожет кто-нибудь объяснить, что именно будет удалено, и в чем выгода, если его не удалить?
Я предполагаю, что Apple говорит о самом объекте аниматора, который добавляется в слой с помощью -addAnimation: forKey:... но опять же: какой смысл держать это вокруг?