博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SDWebImage常用函数
阅读量:4086 次
发布时间:2019-05-25

本文共 2332 字,大约阅读时间需要 7 分钟。

"加载GIF图"- (void)loadGIF{    NSURL *URL;    // 加载网络gif图    URL = [NSURL URLWithString:@"http://photo.l99.com/source/11/1330351552722_cxn26e.gif"];    // 加载本地gif图//    URL = [[NSBundle mainBundle] URLForResource:@"money.gif" withExtension:nil];    [self.imgView sd_setImageWithURL:URL];}

"监听图片下载进度"- (void)loadProgress{    NSURL *URL = [NSURL URLWithString:@"http://img3.duitang.com/uploads/item/201608/18/20160818212406_XVw4K.jpeg"];    [self.imgView sd_setImageWithURL:URL placeholderImage:nil options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {        // receivedSize : 接收的图片大小        // expectedSize : 图片的总大小        float progress = (float)receivedSize / expectedSize;        NSLog(@"%zd %zd %f",receivedSize,expectedSize,progress);    } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {        NSLog(@"图片下载完成 %@",image);    }];}

"Manager下载图片"- (void)LoadImageWithManager{    NSURL *URL = [NSURL URLWithString:@"http://img3.duitang.com/uploads/item/201608/18/20160818212406_XVw4K.jpeg"];    [[SDWebImageManager sharedManager] downloadImageWithURL:URL options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {        // receivedSize : 接收的图片大小        // expectedSize : 图片的总大小        float progress = (float)receivedSize / expectedSize;        NSLog(@"%zd %zd %f",receivedSize,expectedSize,progress);    } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {        self.imgView.image = image;    }];}

  • 1.图片文件缓存的时间有多长:1周

    _maxCacheAge = kDefaultCacheMaxCacheAge

  • 2.SDWebImage 的内存缓存是用什么实现的?

    NSCache

  • 3.SDWebImage 的最大并发数是多少?

    maxConcurrentDownloads = 6

  • 4.SDWebImage 支持动图吗?GIF

#import 
[UIImage animatedImageWithImages:images duration:duration];
  • 5.SDWebImage是如何区分不同格式的图像的
根据图像数据第一个字节来判断的!PNG:0x89JPG:0xFFGIF:0x47

-6.SDWebImage 缓存图片的名称是怎么确定的!

md5    如果单纯使用 文件名保存,重名的几率很高!    使用 MD5 的散列函数!对完整的 URL 进行 md5,结果是一个 32 个字符长度的字符串!
  • 7.SDWebImage 的内存警告是如何处理的!

    利用通知中心观察

    • UIApplicationDidReceiveMemoryWarningNotification 接收到内存警告的通知
      执行 clearMemory 方法,清理内存缓存!
    • UIApplicationWillTerminateNotification 接收到应用程序将要终止通知
      执行 cleanDisk 方法,清理磁盘缓存!
    • UIApplicationDidEnterBackgroundNotification 接收到应用程序进入后台通知
      执行 backgroundCleanDisk 方法,后台清理磁盘!
      通过以上通知监听,能够保证缓存文件的大小始终在控制范围之内!
      clearDisk 清空磁盘缓存,将所有缓存目录中的文件,全部删除! 实际工作,将缓存目录直接删除,再次创建一个同名空目录!

转载地址:http://jfkii.baihongyu.com/

你可能感兴趣的文章
SecurityError Error 2148 SWF 不能访问本地资源
查看>>
Flex:自定义滚动条样式/隐藏上下箭头
查看>>
烈焰SWF解密
查看>>
Qt 静态编译后的exe太大, 可以这样压缩.
查看>>
3D游戏常用技巧Normal Mapping (法线贴图)原理解析——基础篇
查看>>
乘法逆元
查看>>
STL源码分析----神奇的 list 的 sort 算法实现
查看>>
Linux下用math.h头文件
查看>>
Linux中用st_mode判断文件类型
查看>>
Ubuntu修改host遇到unable to resolve host
查看>>
路由选择算法
查看>>
Objective-C 基础入门(一)
查看>>
Objective-C 基础入门(三) 读写文件与回调
查看>>
C++ STL标准库与泛型编程(一)概述
查看>>
C++ STL标准库与泛型编程(四)Deque、Queue、Stack 深度探索
查看>>
C++ STL标准库 算法
查看>>
JVM内存模型_Minor GC笔记
查看>>
SpringCloud学习之PassCloud——(一)PassCloud源代码下载
查看>>
Linux下安装Python环境并部署NLP项目
查看>>
Nginx篇-springCloud配置Gateway+Nginx进行反向代理和负载均衡
查看>>