UIImageView с сотнями полноэкранных изображений - PullRequest
0 голосов
/ 09 ноября 2010

У меня проблема. У меня есть UIImageView и 144 полноэкранных изображений (960x640). И у меня есть таймер, который загружает 15 изображений в секунду в UIImageView. В конце изображения воспроизводятся как фильм. Все отлично работает, но я получаю предупреждения о памяти iphone4. У меня просто есть массив, который содержит пути к изображениям. Изображение, которое необходимо отобразить, загружается с помощью initWithContentsOfFile.

По моему мнению, я сделал все возможное, используя UIImageView. Но, как я уже сказал, я получаю предупреждения о памяти, и даже на iphone4 он кажется немного медленным.

Полагаю, лучший подход - использовать cocos2d / openGL или Core Animation. Но я не знаю с чего начать. Это должно быть быстро (хорошая производительность) и отпечаток памяти должен быть как можно меньше.

Надеюсь, кто-нибудь может указать мне правильное направление.

Спасибо заранее

Ответы [ 2 ]

0 голосов
/ 11 ноября 2010

Вы можете посмотреть здесь: лучший способ загрузить библиотеку изображений iphone nsmutablearray (600+ элементов)

Некоторое время назад я провел несколько тестов, чтобы выполнить нечто, похожее на то, что вы делаете.

0 голосов
/ 09 ноября 2010

Поможет ли это?

http://appsamuck.com/day2.html

   // create the view that will execute our animation
 UIImageView* campFireView = [[UIImageView alloc] initWithFrame:self.view.frame];

 // load all the frames of our animation
 campFireView.animationImages = [NSArray arrayWithObjects:    
                             [UIImage imageNamed:@"campFire01.gif"],
                             [UIImage imageNamed:@"campFire02.gif"],
                             [UIImage imageNamed:@"campFire03.gif"],
                             [UIImage imageNamed:@"campFire04.gif"],
                             [UIImage imageNamed:@"campFire05.gif"],
                             [UIImage imageNamed:@"campFire06.gif"],
                             [UIImage imageNamed:@"campFire07.gif"],
                             [UIImage imageNamed:@"campFire08.gif"],
                             [UIImage imageNamed:@"campFire09.gif"],
                             [UIImage imageNamed:@"campFire10.gif"],
                             [UIImage imageNamed:@"campFire11.gif"],
                             [UIImage imageNamed:@"campFire12.gif"],
                             [UIImage imageNamed:@"campFire13.gif"],
                             [UIImage imageNamed:@"campFire14.gif"],
                             [UIImage imageNamed:@"campFire15.gif"],
                             [UIImage imageNamed:@"campFire16.gif"],
                             [UIImage imageNamed:@"campFire17.gif"], nil];

 // all frames will execute in 1.75 seconds
 campFireView.animationDuration = 1.75;
 // repeat the annimation forever
 campFireView.animationRepeatCount = 0;
 // start animating
 [campFireView startAnimating];
 // add the animation view to the main window 
 [self.view addSubview:campFireView];
...