`
sunqichao
  • 浏览: 27501 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

SDWebImage使用,图片加载和缓存

    博客分类:
  • IOS
阅读更多

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中SDWebImage指定缓存图片大小

    在iOS中使用SDImageView实现缓存图片,可以自己指定缓存图片的大小

    SDWebImage远程图片加载

    SDWebImage使用——一个可管理远程图片加载的类库 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。

    TableView滑动优化加载在图片(SDWebImage+Runloop).zip

    TableView滑动优化加载在图片(SDWebImage+Runloop)

    iOS 图片加载框架SDWebImage解读

    在使用SDWebImage加载图片时,尤其是加载gif等大图时,SDWebImage会将图片缓存在内存中,这样是非常吃内存的,这时我们就需要在适当的时候去释放一下SDWebImage的内存缓存,才不至于造成APP闪退。 SDWebImage 提供...

    iPhone开发 SDWebImage框架 远程加载图片

    SDWebImage是以Category的形式对UIImageView进行扩展。 是git上的一个开源项目 使用了它之后,让UIImageView可以直接设置图片的Url地址,剩下的下载,缓存就交给SDWebImage处理吧。

    SDWebImage

    SDWebImage 异步加载图片 以及缓存图片,非常不错的一个库

    sdwebimage

    sdwebimage 异步加载,实现图片的异步加载,有站位图,有缓存, 加载图片不卡顿

    SDWebImage框架

    SDWebImage框架,方便使用图片缓存加载。

    iOS-SDWebImage详细介绍

    在iOS的图片加载框架中,SDWebImage使用频率非常高。它支持从网络中下载且缓存图片,并设置图片到对应的UIImageView控件或者UIButton控件。在项目中使用SDWebImage来管理图片加载相关操作可以极大地提高开发效率,让...

    SDWebImage_Comment:SDWebImage源码解读下载,缓存,加载等机制详细讲解,附带注释代码-源码下载

    提供UIImageView , UIButton , MKAnnotationView的分类,用于加载网络图片,并进行缓存管理; 初步方式来下载网络图片 异步方式: memory (内存)+ disk (磁盘)来缓存网络图片,自动管理缓存; 后台图片解码,...

    UIImage-Cache:对SDWebImage的缓存机制做了封装

    模仿SDWebImage对图片缓存的处理,自己设置图片缓存池和操作缓冲池等机制,实现对图片的异步加载 知识点 1、设置占位图片,解决图片大小设置问题(用来解决网络请求成功,但是Cell上显示错误的情况)。 2、每次从...

    sdwebImage

    这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。 使用示范的代码:

    IOS一些第三方库集合工程文件

    SDWebImage 图片异步加载及缓存 UIActivityIndicator-for-SDWebImage 为SDWebImage显示加载效果 UIImage+Resize 调整图片大小 ImageCacheResize 异步加载图片、缓存及调整大小 EGOTableViewPullRefresh 下拉刷新 ...

    SDWebImag图片加载类库

    1.为UIImageView加载网络图片,为Cocoa Touch框架提供缓存管理。 2.异步图片下载 3.异步内存+磁盘图片缓存,自动缓存过期处理。 4.确保同一个url不会被加载很多次 5.确保虚假url不会被重复提交很多次

    swift-CLWebImageDemo提供图片缓存框架简单思路

    提供一个类似SDWebImage图片异步加载框架的简单设计思路

    使用Swift5 + MVVM实现的微博App iOS端代码

    使用Swift5 + MVVM实现的微博App iOS端代码(纯代码) 项目功能 原创微博功能 转发微博功能 Emoji表情功能 撰写微博界面 新特性功能 消息提醒功能 多图展示功能 富文本功能 多图展示功能 下滑自动加载功能 ...

    SDWebImageYYPlugin:一个SDWebImage插件,用于集成YYImage和YYCache以进行图像渲染和缓存

    通过使用SDWebImageYYPlugin,你可以用你熟悉的SDWebImage的加载方法,对YYAnimatedImageView 。 而且,对于图像缓存系统,您也可以使用YYCache而不是SDImageCache ,这可能会提高内存缓存性能(通过使用LRU算法的...

    SDWebImageSwiftUI:由SDWebImage支持的SwiftUI图像加载和动画框架

    它带来了SDWebImage的所有您喜欢的功能,例如异步图像加载,内存/磁盘缓存,动画图像回放和性能。 该框架提供了不同的View结构,这些API与SwiftUI框架准则相匹配。 如果您熟悉Image ,您会发现使用WebImage和...

Global site tag (gtag.js) - Google Analytics