美文网首页
SDWebImage

SDWebImage

作者: Go丶Pikachu | 来源:发表于2016-09-28 15:47 被阅读0次

    一、SDWebImage简介

    话不多说,先给上github的地址。

    github地址:https://github.com/rs/SDWebImage
    中文注释版:链接: https://pan.baidu.com/s/1o8gxYfK 密码: f8vg

    关于SDWebImage是什么,github都讲得非常清楚了。当然,如果你英语跟我一样差的话,你可以看看我对SDWebImage的理解。
    鄙人的理解就是:

    这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。

    二、SDWebImage内部结构

    内部结构图

    主要是分为两个部分,一部分对图片进行缓存,一部分下载图片。

    三、SDWebImage基本使用

    1.设置imageView的图片

    [cell.imageView sd_setImageWithURL:[NSURL URLWithString:app.icon] placeholderImage:[UIImage imageNamed:@"123"]];
    

    第一个参数是网络获取到的图片,placeholderImage这个参数是设置一个预设的图片,也就是当你的网络图片没有的时候,就会使用这个图片,这个还是比较常用的。

    2.设置图片并计算下载进度

    /*
         第一个参数:要下载图片的地址
         第二个参数:展位图片
         第三个参数:下载图片的策略
         第四个参数:progress是一个block,监听下载进度
            receivedSize:已经下载的大小
            expectedSize:图片大小
         第五个参数:下载完成后调用
         */
        [cell.imageView sd_setImageWithURL:[NSURL URLWithString:app.icon] placeholderImage:[UIImage imageNamed:@"123"] options:kNilOptions progress:^(NSInteger receivedSize, NSInteger expectedSize) {
            NSLog(@"%.2f",1.0 *receivedSize/ expectedSize);
            
        } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
            NSLog(@"已经完成了");
        }];
    

    3.系统级内存警告如何处理

    
     //1.取消当前所有任务
        [[SDWebImageManager sharedManager] cancelAll];
        
        //2.清空缓存
    //    缓存周期:7天
    //    cleanDisk:删除过期缓存,计算当前缓存文件大大小,如果大于设置的最大缓存,那么会继续删除文件,按照创建时间的远近来删除
        
    //    clearDisk:删除文件夹,重新创建
        [[SDWebImageManager sharedManager].imageCache clearDisk];
    

    这里最重要的是,SDWebImage会自动帮我们清楚缓存,周期是7天。当然我们也可以自己手动清除,上面的代码就是清除缓存的。

    假如你想获取系统现在有多少缓存你可以使用下面这句代码

    
    [[SDWebImageManager sharedManager].imageCache getSize];
    

    当然获取到的缓存大小的单位是b,你可以自己转换

    4.如何判断当前图片类型

    + (NSString *)sd_contentTypeForImageData:(NSData *)data;
    

    相关文章

      网友评论

          本文标题:SDWebImage

          本文链接:https://www.haomeiwen.com/subject/ijnhyttx.html