SDWebImage简单使用

0、加载网络图片,需要使用URL,所以,只要类提供了有传URL的方法,就可以从网络下载图片,
      比如NSData可以从网络下载图片,显示到imageView上:

 

选择使用SDWebImage加载图片!使用SDWebImage加载图片,会帮我们自动做图片缓存,下次从相同的URL中下载图片,会自动去缓存中取

1.依赖的框架

* ImageIO.framework

* MapKit.framework

 

2.UIImageView下载图片需要的头文件:UIImageView+WebCache.h

 

3.调用方法下载图片

// url是图片路径
// placeholder是占位图片(正在下载图片时,暂时显示的图片)
// options是缓存策略
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder

- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options

4.缓存策略-SDWebImageOptions

认是开启了盘\内存缓存的。当想改变缓存策略,可以指定下面这些参数。

* SDWebImageRetryFailed   下载失败了会再次尝试下载

* SDWebImageLowPriority   当UIScrollView等正在滚动时,延迟下载图片(放置scrollView滚动卡)

* SDWebImageCacheMemoryOnly 只缓存到内存中,不缓存到硬盘上

* SDWebImageProgressiveDownload 图片会一点一点慢慢显示出来(就像浏览器显示网页上的图片一样)

* SDWebImageRefreshCached 将硬盘缓存交给系统自带的NSURLCache去处理,当同一个URL对应的图片经常更改时可以用这种策略

一般使用SDWebImageRetryFailed | SDWebImageLowPriority

 SDWebImageRefreshCached:当图片地址经常变化时,使用这个缓存策略(NSURLCache处理方式:当URL不变时,去缓存读取,当URL变化时,会去网络加载,并刷新缓存)。

 

- (void)clearCache
{
    [Tools showStatusWithString:@"清理中..."];
    
    [[SDImageCache sharedImageCache] clearDiskOnCompletion:^{
        
        // sdwebimage清理完自己管理的缓存后,我们来清理我们自己应用页面缓存

        [[WBCacheManager shareManager] clearDisk];
        [[KTCacheManager shareManager] clearDisk];
        [Tools showSuccessWithString:@"清理成功"];
    }];
    
    // 清理tmp目录下的所有文件
    NSString *direction = NSTemporaryDirectory();
    NSArray *tmplist = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:direction error:nil];
    
    for (NSString *filename in tmplist) {
        NSString *fullpath = [direction stringByAppendingPathComponent:filename];
        if ([[NSFileManager defaultManager] fileExistsAtPath:fullpath]) {
            [[NSFileManager defaultManager] removeItemAtPath:fullpath error:nil];
        }
    }
    
}
View Code

 

 
posted @ 2014-07-28 23:29  Big.Eagle  阅读(361)  评论(0)    收藏  举报