开源中国iOS客户端学习——(十四)使用EGOImageLoading异步加载图片

转载 2013年12月02日 17:55:44

EGOImageLoading 是一个用的比较多的异步加载图片的第三方类库,简化开发过程,我们直接传入图片的url,这个类库就会自动帮我们异步加载和缓存工作;当从网上获取图片时,如果网速慢图片短时间内不能下载下来,可以先用一张本地的图片代替显示,还可以进行其他操作,让图片下载完成后自动替换占位图片而不影响用户体验;


EGOImageLoading 的GitHub 下载地址:  https://github.com/enormego/EGOImageLoading

GitHub上下载下来的类库会有一个Demo,如果运行出错说明缺少EGOCache类,在https://github.com/enormego/EGOCache添加道工程之中,或者直接点击这里下载


首先还是来分析一下开源中国iOS客户端如何使用这个第三方类库

在我搜索客户端中哪些类使用了这个类库的时候和预期的并不一样,在工程中有很多地方需要使用到图片的异步加载,而使用EGOImageLoading类库加载只有三个地方,也可以说是两个地方

一是在显示个人资料加载个人图片,显示个人信息时候使用的。

二个是显示你的粉丝或者你关注的人,想查看TA的资料的时候

  


在MyView类和UserView2类中,使用方法一样

声明一个 EGOImageView管理图片的异步加载

  1. @property (strong,nonatomic) EGOImageView * egoImgView;  
在ViewDidLoad方法中

  1. //    初始化  
  2.     self.egoImgView = [[EGOImageView alloc] initWithFrame:CGRectMake(15, 4, 70, 70)];  
  3. //    占位图片  
  4.     self.egoImgView.image = [UIImage imageNamed:@"big_avatar_loading.png"];  
  5. //    设置图片圆角弧度  
  6.     egoImgView.layer.cornerRadius = 40.0f;  
  7.     [self.view addSubview:self.egoImgView];  

然后就是在reload()方法中图片加载处理,先从网络解析获取图片的url资源,如果未获取到图片url仍然显示占位图片,如果获取到了就将占位图片更换为解析获取的图片

  1. //头像  
  2. NSString *portrait_str = [TBXML textForElement:portrait];  
  3. if ([portrait_str isEqualToString:@""])   
  4. {  
  5.     self.egoImgView.image = [UIImage imageNamed:@"big_avatar.png"];  
  6. }  
  7. else  
  8. {  
  9.     self.egoImgView.imageURL = [NSURL URLWithString:portrait_str];  
  10. }    

以上就是使用EGOImageLoading 类库进行图片的异步加载;

以下是一个使用EGOImageLoading 类库进行图片异步加载的示例Demo
下载地址:http://download.csdn.net/detail/duxinfeng2010/5492125



在开源中国iOS 客户端的问答、动弹、我的三个视图也涉及到图片的显示加载问题,刚开始误以为使用EGOImageLoading 类库异步加载图片,而实际上是一个延迟加载,先用占位图片显示,然后使用IconDownloader类库从服务器端将图片下载到本地缓存,在进行加载显示;


    



原创博客欢迎转载分享,请注明出处http://blog.csdn.net/duxinfeng2010

相关文章推荐

开源中国iOS客户端学习——(十四)使用EGOImageLoading异步加载图片

EGOImageLoading 是一个用的比较多的异步加载图片的第三方类库,简化开发过程,我们直接传入图片的url,这个类库就会自动帮我们异步加载和缓存工作;当从网上获取图片时,如果网速慢图片短时间内...

开源中国iOS客户端学习——(十三)使用UIWebView控件布局视图

在上一篇博客   开源中国iOS客户端学习——(十二)用户登陆  中讲到用户登陆界面,loginView.xib布局中我们看到有一个UIWebView控件,但是它并没有加载一个网页,而是显示一些文...

开源中国iOS客户端学习——(十二)用户登陆

上一篇博客  开源中国iOS客户端学习——(十一)AES加密 中提到将用户名和密码保存到了本地沙盒之中,在从本地读取用户名和密码,这是一个怎样的过程? -(void)saveUserNameAndP...

开源中国iOS客户端学习——(四)GCDiscreetNotificationView提示视图

GCDiscreetNotificationView 类库作用是: 在不阻止用户与设备应用程序交互情况下,作为一个通知视图来显示一个当前的状态。 GCDiscreetNotificationVi...

开源中国iOS客户端学习——(八)网络通信AFNetworking类库

转载自:http://blog.csdn.net/duxinfeng2010/article/details/8620901   开源中国iOS客户端学习——(八)网络通信AF...

开源中国iOS客户端学习——(四)GCDiscreetNotificationView提示

GCDiscreetNotificationView 类库作用是: 在不阻止用户与设备应用程序交互情况下,作为一个通知视图来显示一个当前的状态。 GCDiscreetNotificationView ...

开源中国iOS客户端学习——(一)Prefix.pch文件

当我们新建一个工程的时候,在Supporting FIles文件下会看到一个以  -Prefix.pch结尾文件的文件,pch全称是“precompiled header”,也就是预编译头文件,该文件...

开源中国iOS客户端学习——(十)搜索功能

开源中国社区团队基于开源项目 GitLab 开发了一款和GitHub一样的在线代码托管平台 Git @ OSC。并且开源客户端的源码在GitHub上不做更新,迁移到Git @OSC上了,欲了解更多请访...

开源中国iOS客户端学习——(七)MBProgressHUD特效

在开源中国iOS客户端中也用到了MBProgressHUD这个特效,主要作用为应用显示一个过渡的作用,常用于打开一个联网页面加载过程,防止出现假死现象,如果网速慢则告诉用户已经在很努力很努力的加载中。...

开源中国iOS客户端学习——(五)网络通信ASI类库(1)

如今的应用大部分基予网络,在开源中国iOS客户端源码中关于网络通信方面用了三个类库,ASI和AFNetworking,还有一个苹果官方给出的Reachability用于检测当前网络状况,本文介绍当前用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开源中国iOS客户端学习——(十四)使用EGOImageLoading异步加载图片
举报原因:
原因补充:

(最多只允许输入30个字)