2009-08-30 3 views
2

У меня есть UIImageView, в который загружена последовательность изображений PNG.Как вы «ping pong» анимация последовательности изображений UIView

Мой вопрос: знаете ли вы, что я могу «пинг-понг» в анимационной последовательности? Чтобы он играл вперед с 1-24, он воспроизводит назад с 24-1 и петель.

(технически это должно быть: 1-24 тогда 23-1 затем 2-24 затем 23-1 ... и т.д.)

- (void) loadAnim01 { 
mon01 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mon01_01.png"]]; 
mon01.center = CGPointMake(258,69); 
NSMutableArray *array = [NSMutableArray array]; 
for (int i = 1; i <= 24; i++) 
    [array addObject:[UIImage imageNamed:[NSString stringWithFormat:@"mon01_%02d.png",i]]]; 
mon01.animationImages = array; 
mon01.animationDuration = 1.0; 
mon01.animationRepeatCount = 0; 
[self.view addSubview:mon01]; 
[mon01 release]; 

}

Спасибо большое!

+0

См. Http://stackoverflow.com/questions/16554487/uiimage-animation-causing-app-to-crash-memory-leaks/17224921#17224921 для проблем с использованием памяти, с которыми вы, вероятно, столкнетесь с этим использованием animationImages , – MoDJ

ответ

7
for (int i = 1; i <= 24; i++) { 
    [array addObject:[UIImage imageNamed:[NSString stringWithFormat:@"mon01_%02d.png",i]]]; 
} 
for (int j = 23; j >= 2; j--) { 
    [array addObject:[array objectAtIndex:j-1]]; // -1 since arrays are 0-based 
} 

это добавляет вторую копию всех, кроме первой и последней анимации, в обратном порядке, который должен дать вам пинг-понг эффект.

+0

Сделано! Спасибо! – Jonathan

+0

не забудьте нажать галочку, чтобы принять ответ ... –

0

Нет, все в Cocoa подсчитывается по ссылке, поэтому членство в объекте в нескольких коллекциях будет иметь только один экземпляр, если вы не используете копию.

 Смежные вопросы

  • Нет связанных вопросов^_^