异步图像 - 仅用于显示来自Web的图像?

时间:2012-07-09 07:37:19

标签: iphone uiimageview

我的文档文件夹中有图像,我在其中一个屏幕上显示。加载图像并在屏幕上显示它们需要花费很多时间,类似于从网络加载图像时。据我所知,异步imageView适用于后一种情况。我可能错了。

我们是否可以异步显示文档文件夹中的图像?

2 个答案:

答案 0 :(得分:1)

看看SDWebImage。它是一个UIImageView子类,允许您从URL和有用的缓存异步显示图像。它旨在使用Internet URL,但我认为它也适用于内部URL。

答案 1 :(得分:1)

将图像加载到后台线程中,如下所示

-(void)backgroundLoadImageFromPath:(NSString*)path {
    UIImage *newImage = [UIImage imageWithContentsOfFile:path];
    [myImageView performSelectorOnMainThread:@selector(setImage:) withObject:newImage waitUntilDone:YES];
}

然后在需要设置图像的地方调用该线程

[self performSelectorInBackground:@selector(backgroundLoadImageFromPath:) withObject:path];

注意,在backgroundLoadImageFromPath中,您需要等到setImage:选择器完成,否则后台线程的自动释放池可能会在setImage:方法保留之前解除分配图像。