怎样使用sdwebimage使用说明加载沙盒图片

SDWebImage异步加载图片及缓存的管理与清理 - CSDN博客
一、SDWebImage介绍
1、在项目的开发过程中,我们经常会用到异步加载图片的功能,先从网络上异步下载图片,然后通过UIImageView显示在屏幕上。这是一个经常使用的功能,基本上所有的联网应用程序都要用到的功能,现在GitHub上已经有非常成熟的框架
(提供异步加载图片、缓存管理,下载进度等,功能最齐全)(之前使用的框架,缓存管理不如SDWebImage设计简单)&(只提供异步加载图片功能,无缓存管理)
这里主要介绍SDWebImage,这个框架用的最多,在GitHub上已经给出框架的一些使用方法(详情),我们直接下载这个框架,运行里面的Demo发现Xcode会报编译错误,这是因为SDWebImage在项目中引用了GitHub的另外一个项目libwebp的项目,如果要运行Demo网上已经给出了解决办法。
2、我们只是使用异步加载图片及缓存管理的相关功能,不需要libwebp项目,新建项目,将SDWebImage目录下的源代码直接加到项目中
二、使用SDWebImage提供的类扩展实现异步加载图片
1、SDWebImage提供了UIImageView的扩展类,只需要在头文件中加入文件引用
#import &UIImageView+WebCache.h&
异步加载图片方法:
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)
url 图片的地址placeholder & 网络图片在尚未加载成功时显示的图像
默认情况下,SDWebImage会忽略Header中的缓存设置,将图片以url为key进行保存,url与图片是一一对应关系。所以请求同一个url时,SDWebImage会从缓存中取得图片。一般的情况下用此方法可以满足我们的应用要求,但是如果你请求同一个url,而这张图片在服务器端更新了,本地客户端再次请求时还是会返回缓存中的旧图片,例如加载头像类经常更新的图片时,就会出现头像不能更新的问题,由于url与图片一一对应,一种解决的办法是改变部分url地址方式实现更新,不过这种方法操作起来很复杂,下面介绍一个更方便的办法
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)
我们将第三个参数设置为SDWebImageRefreshCached就可以实现图片更新操作了,使用方法很简单,如下:
NSURL *url = [NSURL URLWithString:@&/image.png&];
UIImage *defaultImage = [UIImage imageNamed:@&default.png&];
[self.imageView setImageWithURL:url placeholderImage:defaultImage options:SDWebImageRefreshCached];
三、缓存的计算及清理
1、缓存计算,这里的缓存计算,只计算SDWebImage的缓存,沙盒文件夹中的其它文件并不包括在内:
[SDWebImageManager.sharedManager.imageCache
calculateSizeWithCompletionBlock:^(NSUInteger fileCount, NSUInteger totalSize) {
2、缓存清理
在SDWebImage中有两种缓存,一种是磁盘缓存,一种为内存缓存,框架都提供了相应的方法:
[[[SDWebImageManager sharedManager] imageCache] clearDisk];
[[[SDWebImageManager sharedManager] imageCache] clearMemory];
不过这里要特别注意一下,在IOS7中你会发现使用这两个方法缓存总清除不干净,即使断网下还是会有数据。这是因为在IOS7中,缓存机制做了修改,使用上述两个方法只清除了SDWebImage的缓存,没有清除系统的缓存,所以我们可以在清除缓存的代理中额外添加以下:
[[NSURLCache sharedURLCache] removeAllCachedResponses];利用SDWebImage 异步加载图片的话,怎么跟踪进度?
[问题点数:20分]
利用SDWebImage 异步加载图片的话,怎么跟踪进度?
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
2009年5月 C/C++大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。用心创造滤镜
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
1 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 2
static NSString *MyIdentifier = @"MyIdentifier"; 3
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 4
if (cell == nil) { 5
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier] autorelease]; 6
} 7 // Here we use the new provided setImageWithURL: method to load the web image 8
[cell.imageView setImageWithURL:[NSURL URLWithString:@"/path/to/image.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 9
cell.textLabel.text = @"My Text";10
return11 }基本代码:[imageView setImageWithURL:[NSURL URLWithString:@"/path/image.jpg"]];使用SDWebImageManager类:可以进行一些异步加载的工作。SDWebImageManager *manager = [SDWebImageManager sharedManager];UIImage *cachedImage = [manager imageWithURL:url]; // 将需要缓存的图片加载进来if (cachedImage) {
// 如果Cache命中,则直接利用缓存的图片进行有关操作
// Use the cached image immediatly} else {
// 如果Cache没有命中,则去下载指定网络位置的图片,并且给出一个委托方法
// Start an async download
[manager downloadWithURL:url delegate:self];}当然你的类要实现SDWebImageManagerDelegate协议,并且要实现协议的webImageManager:didFinishWithImage:方法。// 当下载完成后,调用回调方法,使下载的图片显示- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image {
// Do something with the downloaded image}独立的异步图像下载可能会单独用到异步图片下载,则一定要用downloaderWithURL:delegate:来建立一个SDWebImageDownloader实例。downloader = [SDWebImageDownloader downloaderWithURL:url delegate:self];这样SDWebImageDownloaderDelegate协议的方法imageDownloader:didFinishWithImage:被调用时下载会立即开始并完成。独立的异步图像缓存SDImageCache类提供一个创建空缓存的实例,并用方法imageForKey:来寻找当前缓存。UIImage *myCachedImage = [[SDImageCache sharedImageCache] imageFromKey:myCacheKey];存储一个图像到缓存是使用方法storeImage: forKey:[[SDImageCache sharedImageCache] storeImage:myImage forKey:myCacheKey];默认情况下,图像将被存储在内存缓存和磁盘缓存中。如果仅仅是想内存缓存中,要使用storeImage:forKey:toDisk:方法的第三个参数带一负值来替代。分享到:&
阅读(44524)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'SDWebImage使用,图片加载和缓存',
blogAbstract:'清除缓存:[[SDImageCache sharedImageCache] clearDisk];[[SDImageCache sharedImageCache] clearMemory];来自:http://blog.csdn.net/sqc3375177/article/details/7714573',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:6,
permalink:'blog/static/',
commentCount:5,
mainCommentCount:3,
recommendCount:3,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}【无限互联】iOS框架研究之SDWebImage的原理以及使用流程 秦峰_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
无限互联3G学院
评价文档:
【无限互联】iOS框架研究之SDWebImage的原理以及使用流程 秦峰
【​无​限​互​联​】​i​O​S​框​架​研​究​之​S​D​W​e​b​I​m​a​g​e​的​原​理​以​及​使​用​流​程​ ​秦​峰
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢

我要回帖

更多关于 ios sdwebimage使用 的文章

 

随机推荐