Что делает fillMode?
Документация не очень-то говорит о том, что это технически делает.
fadeInAnimation.fillMode = kCAFillModeForwards;
Я действительно не вижу эффекта этого. У меня есть представление с альфой, установленным в 0.0. Затем я угасаю его. Но когда я раскомментирую линию, она ничего не меняется. Такое же поведение. Я хотел бы понять, что делает этот fillMode.
Ответы
Ответ 1
Из Документация протокола CAMediaTiming:
Определяет, являются ли приемники презентация замораживается или удаляется один раз его активная продолжительность завершена.
Это определяет, что происходит в конце вашей анимации. По умолчанию он установлен в kCAFillModeRemoved, что означает, что изменения анимации отменены, когда анимация завершена. Если вы переключите его на kCAFillModeForwards, изменения, вызванные анимацией, будут зависать.
Обратите внимание, что вам также, вероятно, нужно будет установить для свойства removedOnCompletion значение NO, чтобы ваша анимация не удалялась, что сделало бы этот параметр неэффективным.
Ответ 2
позвольте мне дать более четкий ответ:
хотя внешний вид устанавливает для анимации fillMode
свойство kCAFillModeForwards
(или kCAFillModeBoth), и в то же время установка removedOnCompletion
на NO
может сохранить ваш уровень в его конечном состоянии, когда анимация завершена , но это использование fillMode
не разработан.. и на самом деле навредить, если у вас есть другая анимация, добавьте те же keyPath
(кстати, правильный подход для сохранения конечного состояния анимации заключается в изменении значения свойства для соответствия финальному кадру анимации.)
то, что fillMode
действительно использует, связано с дочерней анимацией в сгруппированной анимации, поэтому вы можете указать конкретную дочернюю анимацию в желаемом состоянии