SDWebImage托管在github上。https://github.com/rs/SDWebImage
这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。
使用示范的代码:
UITableView使用UIImageView+WebCache类(基本应用,UIImageView的一个category)
前提#import导入UIImageView+WebCache.h文件,然后在tableview的cellForRowAtIndexPath:方法下:
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:@"http://www.domain.com/path/to/image.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
9 cell.textLabel.text = @"My Text";
10 return cell;
11 }
基本代码:[imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/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:方法的第三个参数带一负值
来替代。
发表评论
-
IOS开发 多线程 一
2013-11-19 11:46 478原文:http://blog.csdn.net/develo ... -
IOS 学习 Key-value coding
2013-11-19 10:56 796原文:http://blog.csdn.net/develo ... -
IOS block dispatch_queue
2012-11-05 15:04 891研究了3天的block使用,今天终于写出了自己的第一个b ... -
socket编程 详解
2012-08-28 08:57 1037对TCP/IP、UDP ... -
iOS ASIHTTPRequest详解 非常强大
2012-08-27 13:20 2380ASIHTTPRequest对CFNetwork API ... -
今天看了ps的简介,决定一定要把它给学会,首先了解一下基础知识
2012-08-22 00:01 7171.位图图像的概念 位图图像使用像素来表示图像,因此也 ... -
coredata 理解
2012-06-15 13:08 1359昨天开始认真的看coredata的用法,今天终于明白的其中的 ... -
#ifndef、#def、#endif说明
2012-06-13 13:43 864你所遇到的这几个 ... -
ios 数据存储的四种常用方式NSKeyedArchiver/NSUserDefaults/Writ
2012-06-13 10:49 1336OK,今天Himi介绍游戏 ... -
AVAudioPlayer 音频播放器 使用 教程
2012-06-05 14:33 1203IOS中有三种播放音频的方式:AVAudioPlaye ... -
使用iOS手势UIGestureRecognizer
2012-06-05 10:10 1199UIKit中包含了UIGestureRecognizer ... -
NSAutoReleasePool
2012-05-28 14:40 747好记性不如烂博客. 今天需要记录的是关于NSAutoR ... -
NSLocalizedString 实现国际化
2012-05-28 11:23 817一、获取系统所支持的国际化信息 在国际化之前,你可以在ip ... -
自定义 UIColor baseView 父类子类方法名 不能重复
2012-05-24 11:04 828原来是因为方法名字重复了,因为baseview的方法名和 ... -
Android图片处理(Matrix,ColorMatrix)
2012-05-22 09:24 846在编程中有时候需要 ... -
objectForKey与valueForKey在NSDictionary中的差异
2012-05-18 15:38 774从 NSDictionary 取值的时候有两个方法,ob ... -
symbol(s) not found for architexture i386 路径错误
2012-05-16 09:55 1539昨天这个错误又出现 ... -
symbol(s) not found for architexture i386 报错
2012-05-15 18:40 731我靠啊,今天下午出现了个这个错误,找了好多资料,发现让添加li ... -
symbol(s) not found for architexture i386 报错
2012-05-15 18:40 0我靠啊,今天下午出现了个这个错误,找了好多资料,发现让添加li ... -
推送 证书 联机调试
2012-05-15 15:16 822联机调试出现问题, ...
相关推荐
在iOS中使用SDImageView实现缓存图片,可以自己指定缓存图片的大小
SDWebImage使用——一个可管理远程图片加载的类库 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。
TableView滑动优化加载在图片(SDWebImage+Runloop)
在使用SDWebImage加载图片时,尤其是加载gif等大图时,SDWebImage会将图片缓存在内存中,这样是非常吃内存的,这时我们就需要在适当的时候去释放一下SDWebImage的内存缓存,才不至于造成APP闪退。 SDWebImage 提供...
SDWebImage是以Category的形式对UIImageView进行扩展。 是git上的一个开源项目 使用了它之后,让UIImageView可以直接设置图片的Url地址,剩下的下载,缓存就交给SDWebImage处理吧。
SDWebImage 异步加载图片 以及缓存图片,非常不错的一个库
sdwebimage 异步加载,实现图片的异步加载,有站位图,有缓存, 加载图片不卡顿
SDWebImage框架,方便使用图片缓存加载。
在iOS的图片加载框架中,SDWebImage使用频率非常高。它支持从网络中下载且缓存图片,并设置图片到对应的UIImageView控件或者UIButton控件。在项目中使用SDWebImage来管理图片加载相关操作可以极大地提高开发效率,让...
提供UIImageView , UIButton , MKAnnotationView的分类,用于加载网络图片,并进行缓存管理; 初步方式来下载网络图片 异步方式: memory (内存)+ disk (磁盘)来缓存网络图片,自动管理缓存; 后台图片解码,...
模仿SDWebImage对图片缓存的处理,自己设置图片缓存池和操作缓冲池等机制,实现对图片的异步加载 知识点 1、设置占位图片,解决图片大小设置问题(用来解决网络请求成功,但是Cell上显示错误的情况)。 2、每次从...
这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。 使用示范的代码:
SDWebImage 图片异步加载及缓存 UIActivityIndicator-for-SDWebImage 为SDWebImage显示加载效果 UIImage+Resize 调整图片大小 ImageCacheResize 异步加载图片、缓存及调整大小 EGOTableViewPullRefresh 下拉刷新 ...
1.为UIImageView加载网络图片,为Cocoa Touch框架提供缓存管理。 2.异步图片下载 3.异步内存+磁盘图片缓存,自动缓存过期处理。 4.确保同一个url不会被加载很多次 5.确保虚假url不会被重复提交很多次
提供一个类似SDWebImage图片异步加载框架的简单设计思路
使用Swift5 + MVVM实现的微博App iOS端代码(纯代码) 项目功能 原创微博功能 转发微博功能 Emoji表情功能 撰写微博界面 新特性功能 消息提醒功能 多图展示功能 富文本功能 多图展示功能 下滑自动加载功能 ...
通过使用SDWebImageYYPlugin,你可以用你熟悉的SDWebImage的加载方法,对YYAnimatedImageView 。 而且,对于图像缓存系统,您也可以使用YYCache而不是SDImageCache ,这可能会提高内存缓存性能(通过使用LRU算法的...
它带来了SDWebImage的所有您喜欢的功能,例如异步图像加载,内存/磁盘缓存,动画图像回放和性能。 该框架提供了不同的View结构,这些API与SwiftUI框架准则相匹配。 如果您熟悉Image ,您会发现使用WebImage和...