Анимированные кнопки UIB - PullRequest
       4

Анимированные кнопки UIB

1 голос
/ 01 октября 2010

У меня есть несколько кнопок, которые я хотел бы анимировать.

Я посмотрел и попробовал метод animateWithDuration, но, похоже, это для Views, и я не смог заставить свою реализацию работать.

Может ли этот метод работать и для кнопок анимации?если нет, то как это можно сделать?

РЕДАКТИРОВАТЬ У меня есть следующий код

-(void) animate:(UIButton*) b withMonster: (int) monster withState: (int) state andLastState:(int) last_state {
if (state < last_state) {
    float duration = 1.0 / 10;
    __block int stateTemp = state;
    [b animateWithDuration: duration
                animations: ^{ [UIImage imageNamed:[NSString stringWithFormat:@"m%d.a000%d.png", monster, state]]; }
                completion: ^{ [self animate: A1 withMonster: monster withState: stateTemp++ andLastState: last_state];; }];


}

, и я называю это так

[self animate: A1 withMonster: monsterDecider withState: 1 andLastState: 5];

Когда этот код выполняет приложениеаварийно завершает работу.

Правильно ли выполнять вызовы с помощью self в обоих вызовах (самообозначение ViewController).

Спасибо

1 Ответ

1 голос
/ 01 октября 2010

Вы можете анимировать кнопки, да. В блоке анимации вам нужно изменить некоторые параметры кнопки, например:

[UIView animateWithDuration:animTime
                 animations:^{button.frame = newFrame;}];

Глядя на свой код, вы, вероятно, захотите установить свойство button.imageView.image для нового изображения (ваш код загружает новое изображение, но не устанавливает его для кнопки).

Однако объекты UIImageView фактически поддерживают переключение между несколькими изображениями без необходимости использования методов UIView animateWithduration: ....

Возможно, вы хотите установить следующие свойства:

button.imageView.animationImages
button.imageView.animationDuration
button.imageView.animationRepeatCount

Тогда звоните

[button.imageView startAnimating];

и UIImageView сделает всю анимацию за вас. Смотрите документы на UIImageView: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImageView_Class/Reference/Reference.html

...