预载图像iOS

时间:2012-11-16 15:25:31

标签: objective-c ios uiimage

我使用洪水代码预加载我的图像:

NSMutableArray *test_loose_preload = [[NSMutableArray alloc] initWithCapacity:test_loose_array.count];

for (int aniCount = 0; aniCount < test_loose_array.count; aniCount++) {

    UIImage *frameImage = [test_loose_array objectAtIndex:aniCount];
    UIGraphicsBeginImageContext(frameImage.size);
    CGRect rect = CGRectMake(0, 0, frameImage.size.width, frameImage.size.height);
    [frameImage drawInRect:rect];
    UIImage *renderedImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    [test_loose_preload addObject:renderedImage];

}

test_loose = test_loose_preload;

是否有可能在此块中检查图像是否已预先加载并且不再需要预先加载此图像?

感谢您的想法!

2 个答案:

答案 0 :(得分:0)

offtopic:

您可以使用for each循环

for (UIImage *frameImage in test_loose_array) {

  UIGraphicsBeginImageContext(frameImage.size);
  ...
  [test_loose_preload addObject:renderedImage];
}

答案 1 :(得分:0)

也许我误解了这个问题,但是在我看来,如果你已经构建了一个图像并将其填充到test_loose_preload数组中,那么它就像是“预先加载”的。我知道你担心其他一些线程在你通过数组之前可能会做同样的工作。

如果是这样,那么你可以通过检查[test_loose_preload objectAtIndex:aniCount]来检查这个,如果那个结果是非零的,那么跳过那个并继续下一个索引。