2009-10-28 1 views
3

У меня есть несколько UIButtons, которые я хотел бы запускать короткие анимации кадров 5-10 при нажатии в середине экрана вместе с другими несвязанными файлами. Могу ли я просто удалить один UIImageView в IB и каким-то образом его программным способом обновить? Это не должно быть чрезмерно сложным, я даже не возражаю, если он жестко закодирован, пока это такой маленький проект.Простые анимации [iPhone]

Спасибо.

ответ

3

Вот пример простого способа, что вы делаете анимации с помощью всего несколько кадров являются:

Объявите IBOutlet UIImageView *timerAnimation и связать его с вашим UIImageView в IB. Добавьте некоторое количество изображений в свои ресурсы, например, как показано ниже. Затем загрузите изображения в массив - см код:

timerAnimation.animationImages = [NSArray arrayWithObjects: 
     [UIImage imageNamed:@"timer00.png"], 
     [UIImage imageNamed:@"timer01.png"], 
     [UIImage imageNamed:@"timer02.png"], 
     [UIImage imageNamed:@"timer03.png"], 
     [UIImage imageNamed:@"timer04.png"], 
     [UIImage imageNamed:@"timer05.png"], 
     [UIImage imageNamed:@"timer06.png"], 
     [UIImage imageNamed:@"timer07.png"], 
     [UIImage imageNamed:@"timer08.png"], 
     [UIImage imageNamed:@"timer09.png"], 
     [UIImage imageNamed:@"timer10.png"], 
     [UIImage imageNamed:@"timer11.png"], 
     [UIImage imageNamed:@"timer12.png"], 
     [UIImage imageNamed:@"timer13.png"], 
     [UIImage imageNamed:@"timer14.png"], 
     [UIImage imageNamed:@"timer15.png"], 
     [UIImage imageNamed:@"timer16.png"], 
     [UIImage imageNamed:@"timer17.png"], 
     [UIImage imageNamed:@"timer18.png"], 
     [UIImage imageNamed:@"timer19.png"], 
     [UIImage imageNamed:@"timer20.png"], 
     [UIImage imageNamed:@"timer21.png"], 
     [UIImage imageNamed:@"timer22.png"], 
     [UIImage imageNamed:@"timer23.png"], 
     [UIImage imageNamed:@"timer24.png"], 
     [UIImage imageNamed:@"timer25.png"], 
     [UIImage imageNamed:@"timer26.png"], 
     [UIImage imageNamed:@"timer27.png"], 
     [UIImage imageNamed:@"timer28.png"], 
     [UIImage imageNamed:@"timer29.png"], 
     [UIImage imageNamed:@"timer30.png"], 
     [UIImage imageNamed:@"timer31.png"], 
     [UIImage imageNamed:@"timer32.png"], 
     [UIImage imageNamed:@"timer33.png"], 
     [UIImage imageNamed:@"timer34.png"], 
     [UIImage imageNamed:@"timer35.png"], 
    //  [UIImage imageNamed:@"timer36.png"], save last picture for "times up" 
     nil]; 
timerAnimation.animationDuration = 5.0; 
timerAnimation.animationRepeatCount = 1; 
[timerAnimation startAnimating]; 

Это будет запускать анимацию, пока вы не вызовете [timerAnimation stopAnimating];

+0

Да да да да! Это было абсолютно то, что мне нужно. Не слишком сложный и достаточно простой, чтобы его было легко реализовать. – nullArray

0

Да. Создайте IBOutlet для вашего UIImageView, и вы можете обновить его из кода. Например, используйте свойство image, чтобы установить UIImage, который должен отображаться. Или вы можете добавить изображение в ресурсы своего приложения и связать его с UIImageView в Interface Builder. Используйте .png файлы, так как iPhone был оптимизирован для них.
Поскольку UIImageView является UIView, можно использовать обычную Core Animation methods.