упорядочивание анимации кадров UIImageView и анимации CGTransform
-
05-07-2019 - |
Вопрос
Я хотел бы получить помощь по некоторым стратегиям упорядочивания некоторых анимаций.
Я выделил подкласс UIImageView, чтобы я мог написать некоторые пользовательские анимационные действия на изображении.Я реализовал несколько методов, которые будут использоваться в качестве действий, которые я мог бы вызывать на своем изображении пример:
-(void)rotateAnim; //rotates the image by a few degrees using a CGAffine Transform
-(void)numbersFlashAnim; //uses the UIImageVew.animationImages array for a 14 frame animation.
-(void)moveLeftAnim; //uses another CGAffine Transform to change the imageView's position.
В моем методе viewDidLoad я создаю экземпляр моего подкласса UIImageView.Какие существуют способы последовательного вызова этих анимаций?
Я думал об использовании NSTimer для обработки анимации, но не был уверен, сможете ли вы написать объект NSTimer для обработки нескольких вызовов методов.
пример:
[imageView rotateAnim]; //when this animation is done, I want to call:
[imageView numbersFlashAnim];
Я видел несколько вопросов, касающихся использования NSTimer, но ни один из них конкретно не связан с этой проблемой.Примечание:Я видел, что документы разработчика на сайте Apple также рекомендуют использовать performSelector:withObject:afterDelay:в некоторых случаях, но было интересно, обеспечит ли это достаточную гибкость.
Кроме того, я уже ознакомился с фреймворком Cocos2d, и хотя я могу использовать их методы ~ (Последовательность действий:и т.д. ) Я выбираю решить эту проблему с помощью UIKit / Foundation и т.д.
Решение
Используете ли вы анимацию?Я имею в виду, что вы можете поворачивать свое изображение внутри [UIView beginAnimations:(NSString *)animationID context:(void *)context] блок.Там вы можете добавить метод делегирования, который будет вызван после завершения текущей анимации.И там вы можете называть свои номера flashanim.(Извините за мой английский ;-) )