IOS开发-第三方SDWebImage下载网络图片的使用

从网络上请求图片时,没有使用第三方的话,下载会很慢,而且堵塞线程,还要自己处理多线程问题,效果还非常不明显,使用了SDWebImage这个第三方类库之后,下载图片就变的容易多了。

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

利用CocoaPods安装SDWebImage

在profile里放入pod ‘SDWebImage‘, ‘~> 3.7.3‘保存,pod isntall安装,完成后就可以使用了

导入

#import <SDWebImage/UIImageView+WebCache.h>

以下代码就是使用第三方SDWebImage加载图片

 1 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 2 {
 3     NSString *ID          = @"hh";
 4     MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
 5     if (!cell) {
 6         cell                  = [[MyTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
 7     }
 8
 9
10     //将请求的图片地址放入一个模型,现在取出模型
11         Newmodel *goosmodel = arry[indexPath.row];
12             Newmodel *model = arry[indexPath.row];
13    //转化为NSURL
14             NSURL *urls = [NSURL URLWithString:model.Images];
15             //        利用第三方处理图片
16             [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,

时间: 2024-12-29 10:53:10

IOS开发-第三方SDWebImage下载网络图片的使用的相关文章

ios开发视频播放后台下载功能实现 :1,ios播放视频 ,包含基于AVPlayer播放器,2,实现下载,iOS后台下载(多任务同时下载,单任务下载,下载进度,下载百分比,文件大小,下载状态)(真机调试功能正常)

ABBPlayerKit ios开发视频播放后台下载功能实现 : 代码下载地址:https://github.com/niexiaobo/ABBPlayerKit github资料学习和下载地址:https://github.com/niexiaobo/ 实现功能 :播放视频 ,视频后台下载 (真机调试功能正常) 1.使用ZFPlayer播放视频(可以在线和本地播放,基于AVPlayer,调节音量和屏幕亮度) 2.使用 WHCNetWorkKit 实现下载,后台下载(多任务同时下载,单任务下载,

iOS 开发第三方库全集

拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看"使用方法". (国人写) XHRefreshControl – XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHo

【iOS开发】---- SDWebImage支持webp格式的图片

什么是webp? iOS如何支持webp格式的图片? 什么是webp? 点击这里查看什么是webp. iOS如何支持webp格式的图片? 在iOS的开发中,获取网络图片我们基本上都会使用开源库SDWebImage,正好SDWebImage也支持webp格式图片的加载.那么该如何让SDWebImage支持webp格式图片的加载呢?很简单,步骤如下: 1.工程引入SDWebImage开源库: 2.引入WebP.framework,下载地址:https://github.com/seanooi/iOS

ios开发第三方库

ios开发必备第三方库 引言 作为iOS开发人员,在开发App的过程中怎么会不使用第三方库呢?相信没有App是不使用第三方库的!相信自己在所做过的App中使用过哪些第三方库呢? 网络库 说到网络库,这是开发必备,除非你的App玩单机.现在特别火也特别好用的网络库就数AFNetworking了.也有部分同志喜欢自己用原生的NSURLConnection来做,当然是可以的,只是要写起来也困难,维护起来更困难. 笔者基于AFNetworking封装了一个网络常用API类,猛点阅读:开源HYBNetwo

IOS开发第三方开源库

IOSios开发第三方开源库 1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是GitHub上第三大Objective-C库.它建立在NSURLConnection.NSOperation等类库的基础上,让很多网络通信功能的实现变得十分简单,因此,许多iOS应用开发都会使用到它. 支持HTTP请求和基于REST的网络服务(包括GET.POST.PUT

iOS开发总结 - 下载图片并浏览(UICollectionView)

昨天根据贴图库api做的一个浏览图片的Demo, 源码在这: https://github.com/beddup/TieTuKuBrowers 总结如下: 1. AFNetworking 的使用 demo中通过http api 下载数据,数据有json和image,所以使用了AFHTTPSessionManager (基于NSURLSession) AFNetworking非常方便,可以直接将json转换为NSArray/ NSDictionary, 将image data转换为 UIImage

ios开发第三方库--cocoapods安装

1. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew install ruby gem sources --remove http://ruby.taobao.org/ //移除原文件地址  2.  gem sources -a https://ruby.taobao.org/   //添加新文件地址 3. gem sources -l    /

[第三方]SDWebImage获取网络图片控件的用法

@interface WeatherViewController ()<UISearchBarDelegate> @end @implementation WeatherViewController - (void)viewDidLoad { [super viewDidLoad]; UIImageView* iv=[[UIImageView alloc]initWithFrame:[UIScreen mainScreen].bounds]; NSURL* imgURL=[NSURL URLW

【热门收藏】iOS开发人员必看的精品资料(100个)——下载目录

iPhone.iPad产品风靡全球,巨大的用户群刺激着iOS软件开发需求,然而国内人才缺口很大,正处于供不应求的状态,ios开发前景大好.我们整理了51CTO下载中心100份热门的ios开发资料,做了一个地址收藏目录,方便大家选择性下载.里边均是好资料,相信对学习ios开发有所帮助.目录下载地址:http://down.51cto.com/data/416672 附件预览如下: iOS游戏开发之Unity3D引擎系列 http://down.51cto.com/zt/399 iPadian软件: