Что именно делает removeOnCompletion = NO?

CAAnimation предоставляет свойство removeOnCompletion, которое по умолчанию имеет значение YES.

Давайте узнаем эти факты:

A) Базовая анимация влияет только на дерево представления, но не на дерево модели. Когда анимация закончена, в конечном итоге вы увидите все, что установлено в дереве модели. Вы можете установить fillMode, например, на kCAFillModeBoth, который заменит значение из дерева представления на дерево модели после завершения анимации. Это заставляет вашу анимацию не возвращаться назад (что, скорее всего, именно то, что вы хотите).

B) Я провел эксперимент. removeOnCompletion = NO НЕ будет иметь такой же эффект, как kCAFillModeBoth или kCAFillModeForwards. Если быть более точным: это абсолютно не влияет на то, как выглядит результат после завершения анимации. Вне зависимости от того, «удален» он или нет, кажется, что он вообще не влияет на дерево представления.

Чтобы объяснить, что действительно делает removeOnCompletion, документация в этом отношении слишком слабая. Я не понимаю. Кто-нибудь может объяснить, что именно будет удалено, а что? Каковы преимущества того, что он не удален?

Я предполагаю, что Apple говорит о самом объекте-аниматоре, который добавляется к слою с помощью -addAnimation: forKey: ... но еще раз: какой смысл держать его под рукой ?

13
задан Proud Member 20 January 2011 в 12:43
поделиться