如何将图像下载到本地磁盘并在视图控制器中设置图像视图的图像?

时间:2013-06-20 00:38:19

标签: ios caching afnetworking

我将离线使用我的应用程序。所以,我应该下载我将在视图中使用的所有图像。

我正在使用AFNetworking的缓存机制。但是在显示图像时速度很慢。

因此,我想在必要时从服务器下载文件,并从本地路径设置imageviews的图像。

这是一个好方法吗?

4 个答案:

答案 0 :(得分:1)

NSData *data = [[NSData alloc] initWithContentsOfFile:[NSURL URLWithString:@"imageURL"]];
UIImage *img = [UIImage imageWithData:data];
imageView.image = img;

NSString *path = @"your path";
[UIImagePNGRepresentation(img) writeToFile:[path stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", {name}, @"png"]] options:NSAtomicWrite error:nil];

// when accessing it
UIImage *diskImage = [UIImage imageWithContentsOfFile:path];

或者你可以使用它:https://github.com/rs/SDWebImage - 它有缓存供离线使用,您可能会觉得有用。它还包含一个占位符图像方法。

答案 1 :(得分:0)

这些图片是动态的吗?如果他们不是,而不是下载它们,您可以将它们全部包含在应用程序的软件包中,以便在最初安装应用程序时将它们下载。

答案 2 :(得分:0)

我花了很多天试图找到最好的方法,看看我的回答here for a similar question

答案 3 :(得分:0)

我开始使用https://github.com/rs/SDWebImage,现在一切都很好。