2012-11-16 34 views
0

我用我的预加载图像的泛滥代码:预载图片的iOS

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; 

是否有可能以该块内检查的图像已预先加载,无需预装这一则更多?

感谢您的想法!

+0

我不知道它是否完全符合您的需求,但WWDC 2012视频“构建,存档和提交您的应用程序”详细介绍了图像加载,以最大限度地减少用户的等待时间:https:// developer .apple.com/videos/wwdc/2012/ – j9suvak

回答

0

也许我误解的问题,但在我看来像的图像是“预加载”,如果你已经把它并将它塞进你的test_loose_preload数组中。我认为你担心在通过阵列之前其他一些线程可能会做同样的工作。

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

0

offtopic:

您可以使用for each循环

for (UIImage *frameImage in test_loose_array) { 

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

你的意思不是这个吗? for(int aniCount = 0; aniCount user1719539

+0

btw:没有“.count”? for(UIImage * frameImage in test_loose_array){ – user1719539

+0

它不是更快但更易于阅读。 – CarlJ