IOS开发-第三方SDWebImage下载网络图片的使用
从网络上请求图片时,没有使用第三方的话,下载会很慢,而且堵塞线程,还要自己处理多线程问题,效果还非常不明显,使用了SDWebImage这个第三方类库之后,下载图片就变的容易多了。
SDWebImage这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征
利用CocoaPods安装SDWebImage
在profile里放入pod 'SDWebImage', '~> 3.7.3'保存,pod isntall安装,完成后就可以使用了
导入
#import <SDWebImage/UIImageView+WebCache.h>
以下代码就是使用第三方SDWebImage加载图片
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *ID = @"hh";
MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
if (!cell) {
cell = [[MyTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
} //将请求的图片地址放入一个模型,现在取出模型
Newmodel *goosmodel = arry[indexPath.row];
Newmodel *model = arry[indexPath.row];
//转化为NSURL
NSURL *urls = [NSURL URLWithString:model.Images];
// 利用第三方处理图片
[cell.baiamge sd_setImageWithPreviousCachedImageWithURL:urls andPlaceholderImage:[UIImage imageNamed:@"图 片加载"] options:SDWebImageCacheMemoryOnly progress:^(NSInteger receivedSize, NSInteger expectedSize) {
17 //这里是图片的下载进度
18 } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
19 //这里可以做图片下载完后要做的事情
20 }];
一、options所有选项
1.详细
*默认URL,当一个URL下载出现故障,这样库不会再去下载。
*这个标志禁用这个黑名单。
*/
sdwebimageretryfailed = 1<<0
*
*图像是在用户界面的相互作用开始,这个标志禁用这个功能
*导致延迟下载uiscrollview降速。
*/
sdwebimagelowpriority = 1<<1;
*
这标志磁盘上的缓存(下载到内存 这个常用)(这个不推荐)
*/
sdwebimagecachememoryonly = 1<<2
*
*可以渐进式下载,显示的图像是逐步在下载。只显示一次完全下载图像,图像慢慢显示的那种---可以不用设置默认图像
*/
sdwebimageprogressivedownload = 1<<3
*
*即使是缓存的形象方面,和HTTP响应缓存刷新控制,如果需要的图像从远程位置。
*磁盘缓存将由NSURLCache 而不是sdwebimage处理而导致轻微的性能退化。
*本选项帮助对付变化的图像在相同的请求URL,例如Facebook的API的剖面图的图片。
*如果一个缓存的图像refreshed块称为一次完成,是一个缓存图像和一次又一次的最终图像。
*使用这个标志只有如果你不能让你的url与嵌入式静态缓存破坏参数。
*/
sdwebimagerefreshcached = 1<<4
*
*在iOS 4 +,继续下载该应用程序的图像去背景。这是实现部分由漫游系统的研究
*额外的背景让请求时完成。如果后台工作退出程序操作将被取消。
*/
sdwebimagecontinueinbackground = 1<<5
*
//NSMutableURLRequest.HTTPShouldHandleCookies = YES;
*/
sdwebimagehandlecookies = 1<<6
*
*让不信任证书启用SSL。
*测试用途有用。在生产使用的一个警告。
*/
sdwebimageallowinvalidsslcertificates = 1<<7
*
*默认情况下,图片加载的顺序排队。这个标志移动它们立即加载队列的前面,而不是等待加载当前队列(可能需要一段时间)。
*/
sdwebimagehighpriority = 1<<8
*
*默认,图像是在图像placeholder是加载的加载。这个标志要加载延迟。
*《placeholder图像直到图像加载后完成。这个设置默认图片就不管用了哦
*/
sdwebimagedelayplaceholder = 1<<9
*
我们通常不叫transformdownloadedimage代表法在动画图像
*因为大多数转换代码会损坏它
*使用这个标志来改变它们
*/
sdwebimagetransformanimatedimage = 1<<10
*
*是默认,图像添加到imageview后下载。但在某些情况下,我们想
*有手在背景图像(它与过滤或添加,应用交叉淡入动画例如)
*使用这个标志,如果你想手动设置图像在成功完成时
*/
sdwebimageavoidautosetimage = 1<<11
总的来说,除了sdwebimagerefreshcached和sdwebimagecachememoryonly,其他算是常用吧!用起来没有太大区别,看具体项目需求
2.简单
//失败后URL是黑名单库不会继续重试 SDWebImageRetryFailed = 1 << 0, //图像是在用户界面的相互作用开始,这个标志禁用这个功能
*导致延迟下载uiscrollview降速。 SDWebImageLowPriority = 1 << 1, //只进行内存缓存 SDWebImageCacheMemoryOnly = 1 << 2, //这个标志可以渐进式下载,显示的图像是逐步在下载 SDWebImageProgressiveDownload = 1 << 3, //刷新缓存 SDWebImageRefreshCached = 1 << 4, //后台下载 SDWebImageContinueInBackground = 1 << 5, //NSMutableURLRequest.HTTPShouldHandleCookies = YES; SDWebImageHandleCookies = 1 << 6, //允许使用无效的SSL证书 //SDWebImageAllowInvalidSSLCertificates = 1 << 7, //优先下载 SDWebImageHighPriority = 1 << 8, //延迟占位符 SDWebImageDelayPlaceholder = 1 << 9, //改变动画形象 SDWebImageTransformAnimatedImage = 1 << 10,IOS开发-第三方SDWebImage下载网络图片的使用的更多相关文章
- ios开发视频播放后台下载功能实现 :1,ios播放视频 ,包含基于AVPlayer播放器,2,实现下载,iOS后台下载(多任务同时下载,单任务下载,下载进度,下载百分比,文件大小,下载状态)(真机调试功能正常)
ABBPlayerKit ios开发视频播放后台下载功能实现 : 代码下载地址:https://github.com/niexiaobo/ABBPlayerKit github资料学习和下载地址:ht ...
- iOS 开发工具网页下载
iOS 开发工具网页下载地址: https://developer.apple.com/downloads/
- iOS开发讲解SDWebImage,你真的会用吗?
SDWebImage作为目前最受欢迎的图片下载第三方框架,使用率很高.但是你真的会用吗?本文接下来将通过例子分析如何合理使用SDWebImage. 使用场景:自定义的UITableViewCell上有 ...
- ios开发--第三方整理
一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:hud提示框 地址:https://github. ...
- ios开发清除SDWebImage图片缓存
一:一般在实际的项目应用中都会用到第三方框架SDWebImage去下载缓存图片,但在ios开发应用中,常常涉及对SDWebImage缓存图片的清除.本文所列出代码即是对SDWebImage缓存图片的清 ...
- iOS开发第三方库一 IQKeyboardManager
每一个iOS应用的开发者在工作中都会遇到需要用户键盘输入数据的需求,而输入框(UITextField/UITextView)的父界面可能是普通的UIView,也可能是UIScrollView,UITa ...
- [第三方]SDWebImage获取网络图片控件的用法
#import "UIImageView+WebCache.h" @interface WeatherViewController ()<UISearchBarDelegat ...
- ios开发第三方库--cocoapods安装
1. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quo ...
- 【热门收藏】iOS开发人员必看的精品资料(100个)——下载目录
iPhone.iPad产品风靡全球,巨大的用户群刺激着iOS软件开发需求,然而国内人才缺口很大,正处于供不应求的状态,ios开发前景大好.我们整理了51CTO下载中心100份热门的ios开发资料,做了 ...
随机推荐
- python核心编程第六章练习6-12
6-12.字符串.(a)创建一个名字为findchr()的函数,函数声明如下.def findchr(string, char)findchr()要在字符串string中查找字符char,找到就返回该 ...
- linux笔记:shell基础-bash基本功能
历史命令的调用: 命令和文件补全(如果当前有多个可选的补全,则按2次tab键,可以列出所有的可选项): 命令别名: 让别名永久生效: 删除别名: bash常用快捷键: 标准输入输出: 输出重定向: 输 ...
- springMVC 源码解读系列(一)初始化
先看看DispatcherServlet的类机构: 初始化时序图: servlet初始化会调用 init 方法,换句话说就是springMVC进行初始化的时候首先会去执行HttpServletBean ...
- BZOJ1778 [Usaco2010 Hol]Dotp 驱逐猪猡
首先我们列出转移矩阵$M$,$M_{i, j} = \frac {1 - \frac{p} {q}} {deg[i]}$(i,j之间有边)or $M_{i, j} = 0$(i,j之间没边) 则这个矩 ...
- 今天的学习——关于JS时间获取方面的小问题
①JS获取时间 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1 ...
- PLSQL开发笔记和小结(转载)
***************************************** PLSQL基本结构 ***************************************** 基本数据 ...
- C#微信公众号开发之网页授权oauth2.0获取用户基本信息(一)
咨询 请加 QQ::QQ群: 在微信里面,非认证的公众号账号,只能通过在微信回复菜单单击等事件获取openid,但是认证的公众账号(之前认证的订阅号是不可以的,现在新开放了政府媒体机构的认证订阅号)可 ...
- PhoneGap与Jquery Mobile组合开发android应用的配置
PhoneGap与Jquery Mobile结合开发android应用的配置 由于工作需要,用到phonegap与jquery moblie搭配,开发android应用程序. 这些技术自己之前也都没接 ...
- Material Design之TextInputLayout使用示例
Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个supp ...
- 局域网单机部署双tomcat内外网不能访问防火墙问题查出来
tomcat部署的项目内网访问不了 win7 64 位 控制面板 - 安全 -防火墙-入站规则- 新建规则 选中“端口”按钮,点选“下一步”: 选择“TCP”按钮,在“特定本地端口”输入tomcat ...