您的位置:首页 > 移动开发 > IOS开发

iOS第三方学习1-SDWebImage学习和使用

2015-12-30 10:12 465 查看

iOS第三方学习1-SDWebImage学习和使用

在项目的开发过程中,经常会用到异步加载图片的功能,先从网络上异步下载图片,然后通过UIImageView显示在屏幕上。这个功能基本上所有的联网应用程序都要使用。

SDWebImage 提供异步加载图片、缓存管理、下载进度等功能

SDWebImage有两种缓存,一种是磁盘缓存,一种是内存缓存,框架都提供了相应的方法

1. [UIImageView sd_setImageWithURL: placeholderImage: options: completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {}];

先显示 placeholderImage ,同时由SDWebImageManager 根据 URL 来查找图片。

SDWebImageManager是将UIImageView+WebCache同SDImageCache链接起来的类

SDWebImageManager 调用downloadImageWithURL:options: progress: completed:

SDImageCache queryDiskCacheForKey: done:

用来从缓存根据CacheKey查找图片是否已经在缓存中

2.如果从内存中找到了图片,就返回并显示图片;如果没找到,就在硬盘下查找图片

3.如果在硬盘中找到了图片,就返回并显示图片;如果没找到,说明所有缓存都不存在该图片,需要下载该图片

4.SDWebImageDownloader

downloadImageWithURL: options: progress: completed:

5.下载完成后返回并显示图片

图片保存到 SDImageCache 中,内存缓存和硬盘缓存同时保存。

缓存的清理

[[[SDWebImageManager sharedManager]imageCache]cleanDisk];

[[[SDWebImageManager sharedManager]imageCache]clearMemory];

[[NSURLCache sharedURLCache] removeAllCachedResponses];

著作权声明:本文由http://www.bestnathan.com/原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: