секвенирование анимации кадров UIImageView и анимации CGTransform - PullRequest
1 голос
/ 22 октября 2009

Мне нужна помощь по некоторым стратегиям для последовательности анимации.

Я вложил в 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 также рекомендуется использовать в некоторых случаях executeSelector: withObject: afterDelay:, но мне было интересно узнать, будет ли это достаточно гибко.

Кроме того, я уже взглянул на среду Cocos2d, и хотя я могу использовать их методы ~ (Последовательность действий: и т. Д.), Я выбираю решение этой проблемы с помощью UIKit / Foundation и т. Д.

1 Ответ

0 голосов
/ 23 октября 2009

Вы используете анимацию? Я имею в виду, вы можете повернуть свое изображение внутри [UIView beginAnimations: (NSString *) animationID context: (void *) context] блок. Там вы можете добавить метод делегата, который будет вызываться после окончания текущей анимации. И там вы можете позвонить по своим номерам FlashAnim. (Извините за мой английский ;-))

...