Как добавить настраиваемое свойство анимации в подкласс UIImageView? - PullRequest
4 голосов
/ 06 мая 2011

У меня есть класс, который я вложил в UIImageView. Экземпляр этого класса затем добавляется как подпредставление к корневому классу моего приложения. Теперь я могу анимировать его свойства, например, setFrame:

[UIView beginAnimations:nil context:nil];
...
[myImageView setFrame:someFrameCreatedInCode];
...
[UIView commitAnimations];

Принимает текущий кадр в качестве исходного состояния и интерполирует анимацию просмотра изображения (он просто перемещается слева направо). Эта часть отлично работает.

Далее я хотел бы добавить свойство в свой класс, скажем, целочисленного типа. И я хочу, чтобы это свойство указывало номер изображения (его имя отформатировано) и позже создавало анимацию по кадрам. Кажется, это хороший способ создания анимации, потому что я могу указать «кривую», влияющую на время анимации:

[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

Как реализовать собственное свойство, которое можно анимировать?

Заранее спасибо!

Обновление: на тот случай, если кому-то это понадобится, я нашел эти уроки в Интернете: сообщение в блоге , образец .

1 Ответ

0 голосов
/ 08 мая 2011

Возможно, вы захотите использовать анимацию UIView вместе с анимационными изображениями UIImageView.

Если вы используете такой код:

colors = [[NSArray alloc] initWithObjects:[UIImage imageNamed:@"red_select1.png"],
                        [UIImage imageNamed:@"red_select2.png"],
                        [UIImage imageNamed:@"red_select3.png"],
                        [UIImage imageNamed:@"red_select4.png"],
                        [UIImage imageNamed:@"red_select5.png"],
                        [UIImage imageNamed:@"red_select6.png"],
                        [UIImage imageNamed:@"red_select7.png"],    
                        [UIImage imageNamed:@"red_select8.png"],nil];

animationView = [[UIImageView alloc] initWithFrame:rect];

animationView.animationImages = colors;
animationView.animationDuration = 1.0;
animationView.animationRepeatCount = 0; // loop

[animationView startAnimating];

Я думаю, что единственной проблемой будет синхронизация двух анимаций ...

...