2012-03-13 1 views
0

У меня есть массив объектов UIImage следующим образом:Сразу инициализировать UIImage

frames = [[NSMutableArray alloc] initWithCapacity:[sortedArray count]]; 
for (int nDx = 0; nDx < [sortedArray count]; nDx++) 
{ 
    NSString * sImageName = [sortedArray objectAtIndex:nDx]; 
    [frames addObject:[UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@", imageFolderPath, sImageName]]]; 
} 

В моем методе таймера я делаю следующее, чтобы перебрать изображения:

self.image = [frames objectAtIndex:currentFrame]; 
currentFrame++; 
if (currentFrame >= [frames count]) currentFrame = 0; 

Однако, когда я начинаю таймер цикла изображений замедляется в первый раз, а затем все работает так, как ожидалось. Я также пробовал это без таймера.

Как я могу предварительно загрузить изображения, чтобы они были готовы к работе при запуске моего таймера?

Спасибо за помощь.

ответ

0

У вас может быть отдельная нить для загрузки изображений с использованием кода this.

Если это работает, я добавлю его здесь.

0

Здесь img_array является UIImageView

img_array.animationImages = [NSArray arrayWithObjects: 
            [UIImage imageNamed:@"img_1.png"], 
            [UIImage imageNamed:@"img_2.png"], 
            [UIImage imageNamed:@"img_3.png"],nil]; 


[img_array.animationImages setAnimationRepeatCount:HUGE_VAL]; 
img_array.animationImages .animationDuration = 4; 
[img_array.animationImages startAnimating]; 
[self.view addSubview:img_array] 

Попробуйте это:

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