IOS学习之路二十三(EGOImageLoading异步加载图片开源框架使用)
EGOImageLoading 是一个用的比较多的异步加载图片的第三方类库,简化开发过程,我们直接传入图片的url,这个类库就会自动帮我们异步加载和缓存工作;当从网上获取图片时,如果网速慢图片短时间内不能下载下来,可以先用一张本地的图片代替显示,还可以进行其他操作,让图片下载完成后自动替换占位图片而不影响用户体验;
原文转自:http://blog.csdn.net/wildcatlele/article/details/11536939
EGOImageLoading 的GitHub 下载地址: https://github.com/enormego/EGOImageLoading
GitHub上下载下来的类库会有一个Demo,如果运行出错说明缺少EGOCache类,在https://github.com/enormego/EGOCache添加道工程之中,或者直接点击这里下载
配置很简单:
下载源代码解压缩后直接拖到项目目录中;
添加ImageIO.framwork;
下面附上我自己写的一个自定义UitableViewCell代码:
结果代码展示:
用EGOImageLoading写的自定义代码如下:
OneImageTableViewCell.h
//
// OneImageTableViewCell.h
// ImageViewRefreshDemo
//
// Created by WildCat on 13-9-7.
// Copyright (c) 2013年 wildcat. All rights reserved.
// #import <UIKit/UIKit.h>
@class EGOImageView; //声明头
@interface OneImageTableViewCell : UITableViewCell
@property (nonatomic) EGOImageView *egoImageView;//ImageView类型为:EGOImageView
@property (nonatomic,retain) UILabel *titleLabel;
@property (nonatomic,retain) UILabel *addressLabel;
@property (nonatomic,retain) UILabel *dateLabel;
-(void) setUrlByString:(NSString *) urlStr;
@end
OneImageTableViewCell.m
//
// OneImageTableViewCell.m
// ImageViewRefreshDemo
//
// Created by WildCat on 13-9-7.
// Copyright (c) 2013年 wildcat. All rights reserved.
// #import "OneImageTableViewCell.h"
#import "EgoImageView.h"
@implementation OneImageTableViewCell
@synthesize titleLabel;
@synthesize addressLabel;
@synthesize dateLabel;
@synthesize egoImageView;
-(void)setUrlByString:(NSString *)urlStr{
egoImageView.imageURL = [NSURL URLWithString:urlStr];
}
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {
egoImageView=[[EGOImageView alloc] initWithPlaceholderImage:[UIImage imageNamed:@"2.jpeg"]];//声明对象
egoImageView.frame=CGRectMake(227.0f, 9.0f, 66.f, 50.f);
[self.contentView addSubview:egoImageView]; addressLabel=[[UILabel alloc] initWithFrame:CGRectMake(13.0f, 58.0f, 42.f, 18.f)];
addressLabel.font=[UIFont systemFontOfSize:10.f]; titleLabel=[[UILabel alloc] initWithFrame:CGRectMake(13.0f, .0f, 210.f, 59.f)];
titleLabel.lineBreakMode = UILineBreakModeWordWrap;
titleLabel.numberOfLines = 0;
titleLabel.font=[UIFont boldSystemFontOfSize:14.f];
dateLabel=[[UILabel alloc] initWithFrame:CGRectMake(240.0f, 59.0f, 52.f, 16.f)];
dateLabel.font=[UIFont systemFontOfSize:8.f]; [self.contentView addSubview:titleLabel];
[self.contentView addSubview:addressLabel];
[self.contentView addSubview:dateLabel]; }
return self;
} - (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated]; // Configure the view for the selected state
} @end
使用:
if (oneImageCell==nil) {
oneImageCell=[[OneImageTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellWithOneImageIdentifier];
}
oneImageCell.backgroundView =sectionBagView;
oneImageCell.backgroundView.backgroundColor=[UIColor whiteColor];
oneImageCell.selectedBackgroundView = [[UIView alloc] initWithFrame:oneImageCell.frame] ;
oneImageCell.selectedBackgroundView.backgroundColor = [UIColor grayColor]; oneImageCell.titleLabel.text=nowTitle;
oneImageCell.addressLabel.text=address;
oneImageCell.dateLabel.text=date;
[oneImageCell setUrlByString:[imageUrlsArray objectAtIndex:1]];
return oneImageCell;
转载请注明:
新浪微博:http://weibo.com/u/3202802157
IOS学习之路二十三(EGOImageLoading异步加载图片开源框架使用)的更多相关文章
- Android学习笔记(二)之异步加载图片
最近在android开发中碰到比较棘手的问题,就是加载图片内存溢出.我开发的是一个新闻应用,应用中用到大量的图片,一个界面中可能会有上百张图片.开发android应用的朋友可能或多或少碰到加载图片内存 ...
- swift 异步加载图片(第三方框架ImageLoader)
import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: ...
- IOS开发之路二十一(UIWebView加载本地html)
挺简单不多说的直接代码: // // ViewController.h // JSAndJson // // Created by WildCat on 13-9-8. // Copyright (c ...
- Android中ListView异步加载图片错位、重复、闪烁问题分析及解决方案
我们在使用ListView异步加载图片的时候,在快速滑动或者网络不好的情况下,会出现图片错位.重复.闪烁等问题,其实这些问题总结起来就是一个问题,我们需要对这些问题进行ListView的优化. 比如L ...
- ios UITableView 异步加载图片并防止错位
UITableView 重用 UITableViewCell 并异步加载图片时会出现图片错乱的情况 对错位原因不明白的同学请参考我的另外一篇随笔:http://www.cnblogs.com/lesl ...
- IOS中UITableView异步加载图片的实现
本文转载至 http://blog.csdn.net/enuola/article/details/8639404 最近做一个项目,需要用到UITableView异步加载图片的例子,看到网上有一个E ...
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
Android 高手进阶(21) 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明出处http://blog.csdn.net/xiaanming/article/details ...
- 多线程异步加载图片async_pictures
异步加载图片 目标:在表格中异步加载网络图片 目的: 模拟 SDWebImage 基本功能实现 理解 SDWebImage 的底层实现机制 SDWebImage 是非常著名的网络图片处理框架,目前国内 ...
- [置顶] 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
转载请注明出处http://blog.csdn.net/xiaanming/article/details/9825113 异步加载图片的例子,网上也比较多,大部分用了HashMap<Strin ...
随机推荐
- crawler_爬虫开发的准备工作【工具】
俗话说工欲善其事必先利其器,做java网络爬虫开发分析网页的分析工具,抓包工具比不可少,一下是个人常用的几个工具. 1.firefox低版本是为了支持httpwather , ie各个版本都支持htt ...
- hdu1286 寻找新朋友 (欧拉功能)
原标题:点击打开链接 关于欧拉函数的算法具体解说:点击打开链接 欧拉函数 1.欧拉函数是不全然积性函数. 2.欧拉函数p(x) = x * (p1 - 1) / p1 * (p2 - 1)/p2 * ...
- 无废话WCF入门教程三[WCF的宿主]
一.WCF服务应用程序与WCF服务库 我们在平时开发的过程中常用的项目类型有“WCF 服务应用程序”和“WCF服务库”. WCF服务应用程序,是一个可以执行的程序,它有独立的进程,WCF服务类契约的定 ...
- jquery 直接调用 wcf,面向服务的SOA架构 ( 第二天)
在前面的基础上,我们来开始第二天编写 客户端 的东西,不过讲之前,我想告诉大家的是: 这个简单的SOA的架构,我们直接通过wcf 调用到 后台的方法, 而中间没有使用 C#代码,大大减少我们客户端的代 ...
- Linux常用命令汇总-速查
对Linux新手有用的20个命令 对中级Linux用户有用的20个命令 对Linux专家非常有用的20个命令 20个最受欢迎的Linux命令 20个有趣的Linux命令
- [Openstack] Expecting an auth URL via either --os-auth-url or env[OS_AUTH_URL]
直接使用devstack在ubuntu14.04单个节点的建筑openstack 使用keystone查询租户和用户始终报告时,这个错误! 主要看下这些配置是否正确.我们将能够解决这个问题 opens ...
- Beginning Python From Novice to Professional (5) - 条件与循环
条件与循环 条件运行: name = raw_input('What is your name? ') if name.endswith('Gumby'): print 'Hello, Mr.Gumb ...
- 一步一步写算法(之prim算法 上)
原文:一步一步写算法(之prim算法 上) [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前面我们讨论了图的创建.添加.删除和保存等问题.今 ...
- EXCEL导入GridView,然后再汇入数据库.
原文:EXCEL导入GridView,然后再汇入数据库. 近日项目中有一个多笔料号要输入,我做了一个用javascript复制输入框的功能,可以输入多笔料号. 但是使用者反馈,料号太多,可能几百个料号 ...
- 为Pythonic论坛添加一个“专题”功能(续)
上篇博文<为Pythonic论坛添加一个“专题”功能>,在模板的层次上对发帖进行了限制.也就是根据用户是否拥有权限来决定是否显示发帖框. 但是自从这么“投机取巧”的写完模板后,整夜辗转反侧 ...