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 ...
随机推荐
- BZOJ 1004 HNOI2008 Cards Burnside引理
标题效果:特定n张卡m换人,编号寻求等价类 数据保证这m换人加上置换群置换后本身构成 BZOJ坑爹0.0 条件不那么重要出来尼玛怎么做 Burnside引理--昨晚为了做这题硬啃了一晚上白书0.0 都 ...
- StyleCop中有一些官方自己写好的检测规则下面就是英文的解释
在StyleCop中有一些官方自己写好的检测规则下面就是英文的解释 文档规则 1.SA1600:ElementsMustBeDocumented元素必须添加注释 2.SA1601: PartialEl ...
- jQuery UI的datepicker日期控件如何让他显示中文
首先是引入UI的JS文件和模板文件,如下: <link rel=”stylesheet” href=”./ui/themes/le-frog/jquery.ui.all.css”> < ...
- linux通过key区别登陆的人
key区分登录用户 脚本放 /etc/profile.d,会默认登录的时候执行, 类似于 #!/bin/bash # filename: /etc/profile.d/set_log_file.sh ...
- MAC使用小技巧(二)
一.Safari-->广告数量不足 --原因:DNS被拦截,被恶意推送广告. ----------------------------- [ 思路 ] 修改hosts文件 $ cd /etc $ ...
- java_ java多线程返回函数结果
两种方式:一种继承Thread类实现:一种通过实现Callable接口. 第一种方法: 因为实现Thread类的run方法自身是没有返回值的,所以不能直接获得线程的执行结果,但是可以通过在run方法里 ...
- Cocos2d-xvision3.0加载失败,和,Vs2012环境搭建
1.安装好VS2012,下载Cocos2d-x3.0 双击击win32 sln运行VS2012 如果加载失败点击程序运行,输入devenv.exe /resetuserdata 回车,然后再进入VS, ...
- 如何使用Ubuntu online account API创建微博HTML5申请书
在这篇文章中.我们将使用Ubuntu SDK提供online account API来訪问微博的API并显示所须要的内容.这篇文章的重点是展示怎样在HTML 5中使用online account AP ...
- VS2015预览
VS2015预览版体验 .NET开源了,JAVA颤抖吧...据说VS2015可以开发android,ios,wp应用程序了,还可以开发能运行在mac,linux上的ASP.NET网站,如果真是这样 ...
- 使用Vim或Codeblocks格式化代码
在网上的代码,有很多的代码都是丢失缩进的,几行还好,手动改改,多了呢,不敢想象,没有缩进的代码.别说排错,就是阅读都是困难的,还好,有两个常用工具可以轻松的解决问题. (一)Vim(简单方便,可将代码 ...