Немедленно инициализировать UIImage - PullRequest
0 голосов
/ 13 марта 2012

У меня есть массив объектов 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;

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

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

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

Ответы [ 2 ]

0 голосов
/ 13 марта 2012

Здесь 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]

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

0 голосов
/ 13 марта 2012

Вы можете создать отдельный поток для загрузки изображений, используя этот код.

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

...