CATransition как явная анимация - PullRequest
2 голосов
/ 18 апреля 2011

Приветствую всех.

Кто-нибудь знает, возможно ли по существу преобразовать CATransition в явную анимацию? То есть я почти хочу, чтобы он вел себя как CABasicAnimation - мне нужно иметь возможность создать объект CATransition, установить для него параметры (duration, timingFunction, delegate, type, fillMode, removedOnCompletion и т. Д.) - затем сохраните его для последующего использования и убедитесь, что он не пытается анимировать то, что происходит между созданием объекта CATransition и моментом времени, когда он мне действительно нужен анимировать набор свойств.

Если я использую CABasicAnimation, я легко могу сделать это, так как ничего не анимируется, пока анимация не будет добавлена ​​в слой, и только свойство, указанное в animationWithKeyPath, будет анимировано между toValue / fromValue. Однако CATransition, по-видимому, запускает [CATransaction begin] в момент создания объекта анимации для захвата изменений свойств.

Что мне нужно сделать (как указано выше), это создать объект CATransition, установить вышеуказанные параметры, а затем убрать его, пока мне действительно не понадобится его использовать - в этот момент я изменю фактический свойства, которые нужно анимировать, а затем добавить его к соответствующему CALayer через addAnimation.

Кто-нибудь знает, как это сделать безопасно?

PS: Причина этого в том, что мое приложение сильно зависит от пользовательской системы организации анимации, которая обрабатывает зависимости анимации. Например, некоторые вещи нужно анимировать до того, как произойдет изменение ориентации, поэтому я могу поставить в очередь ~ 10 анимаций, которые все будут запускаться И объект анимации изменения ориентации также, но анимация изменения ориентации не будет срабатывать до тех пор, пока предыдущие анимации этого не произойдут. зависит от того, закончили Между прочим, CABasicAnimation может быть красиво помещен в класс объектов анимации в очереди. CATransition, похоже, немного другой зверь, отсюда и вышеупомянутый вопрос - мне нужно иметь возможность безопасно создать объект очереди анимации, настроить кучу опций CATransition, поставить его в очередь, а затем фактически выполнить его позже (в то же время происходит всякое другое), когда все его зависимости были удовлетворены (в этом случае CATransition используется для анимации изменения ориентации).

Спасибо, -Кевен чаевые

...