SDWebImage

SDWebImage使用简介

SDWebImage是一个缓存图片的第三方,下面介绍几种简单使用
GitHub下载地址:https://github.com/rs/SDWebImage

    NSLog(@"%@",[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject]);
//打印沙盒路径,缓存图片保存在沙盒路径中。

#pragma mark 下载图片
- (IBAction)tapDownLoadPic:(UIButton *)sender {
    NSString *urlStr1 = @"http://img02.tooopen.com/images/20160327/tooopen_sy_157439572224.jpg";
    NSString *urlStr2 = @"http://img02.tooopen.com/images/20160320/tooopen_sy_156512393637.jpg";
    NSURL *url1 = [NSURL URLWithString:urlStr1];
    NSURL *url2 = [NSURL URLWithString:urlStr2];
    //直接下载缓存图片
    [self.image1 sd_setImageWithURL:url1];

    //带有占位图片的,缓存结束后自动替换
    [self.image2 sd_setImageWithURL:url2 placeholderImage:[UIImage imageNamed:@"111"]];

    //block中可以查看图片来源
     [self.image2 sd_setImageWithURL:url2 placeholderImage:[UIImage imageNamed:@"111"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
         NSLog(@"url == %@",imageURL);
         NSLog(@"图片来自:%ld",cacheType);
//cacheType 0- 网络 1-磁盘 2- 内存
     }];

    //可设置选项,SDWebImageOptions可以设置自动重试、仅保存内存中等
    [self.image2 sd_setImageWithURL:url2 placeholderImage:[UIImage imageNamed:@"111"] options:SDWebImageRetryFailed];
    
    //监测下载进度
    [self.image2 sd_setImageWithURL:url2 placeholderImage:[UIImage imageNamed:@"111"] options:SDWebImageRetryFailed progress:^(NSInteger receivedSize, NSInteger expectedSize) {
        NSLog(@"进度:%lf",(double)(receivedSize/expectedSize));
    } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
        NSLog(@"图片来自:%ld",cacheType);
    }];
    
    //观察下载进度,不显示图片。
    [[SDWebImageManager sharedManager]downloadImageWithURL:url2 options:SDWebImageRetryFailed progress:^(NSInteger receivedSize, NSInteger expectedSize) {
        NSLog(@"进度:%lf",(double)(receivedSize/expectedSize));
    } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
        NSLog(@"图片来自:%ld",cacheType);
    }];
    
    //取消下载所有
    [[SDWebImageManager sharedManager] cancelAll];
    
}
#pragma mark 清除内存

- (IBAction)clearNeicun:(UIButton *)sender {
    [[SDImageCache sharedImageCache] clearMemory];
}

#pragma mark 清除过期图片(默认7天过期)

- (IBAction)clearDateOut:(UIButton *)sender {
    [[SDImageCache sharedImageCache] cleanDisk];
}

#pragma mark 清除磁盘

- (IBAction)clearDisk:(UIButton *)sender {
    [[SDImageCache sharedImageCache] clearDisk];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前不久做了一个生成快照的需求,其中用到 SDWebImage 来下载图片,在使用该框架的过程中也遇到了一些问题,索...
    ShannonChenCHN阅读 14,162评论 12 241
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,956评论 25 709
  • 本文通过模拟SDWebImage基本功能实现,从而帮助读者理解SDWebImage的底层实现机制 框架地址:htt...
    si1ence阅读 3,602评论 8 42
  • SDWebImage托管在github上。https://github.com/rs/SDWebImage 这个类...
    XLsn0w阅读 767评论 0 0
  • 一夕晨光 划破天际 我的心 在这冰冷的冬季 渐渐苏醒 春夏秋冬 一年四季 而你 时而平静,时而狂舞 我的心 随你舞...
    熊哥走江湖阅读 240评论 0 0