2009-10-22 2 views
1

Мне нужна помощь по некоторым стратегиям, чтобы упорядочить некоторые анимации.секвенирование анимации анимации UIImageView и анимации CGTransform

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

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

ответ

0

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

+0

Да, я использовал блок анимации и завернул в метод, чтобы я мог назвать всю анимацию одной строкой кода. Я не добавил делегатов. поэтому я проверю это. Могу ли я использовать делегат анимации для анимационных кадров? –

+0

Хм. Извините, но я не могу понять, что вы имеете в виду под анимационными рамками. Вы можете вызвать поворот изображения внутри блока анимации. Затем вы можете установить метод со второй частью вашей анимации, которая будет запущена после завершения анимации. – Morion