`
修博龙泉
  • 浏览: 318245 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SDWebImage一个可管理远程图片加载的类库

 
阅读更多
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

    总的来说,SDWebImage是一个强大且易用的iOS图片加载库,它的出现极大地简化了开发者处理网络图片的工作,提升了应用的性能和用户体验。结合源码中的中文注释,学习和使用起来更为便捷。无论你是初学者还是资深...

    一个PHP多功能图片处理类库

    总的来说,21PHP多功能图片处理类是一个强大的工具,能够满足开发者在图片处理上的多样化需求,简化了代码,提高了开发效率。在实际项目中,合理利用这样的类库,可以使图片处理变得更加便捷和高效。

    SDWebImag图片加载类库

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

    一个PHP多功能图片处理类库.zip

    类库提供了一个方法来实现图片的等比例缩放,可以设置新的宽度或高度,自动计算另一个尺寸,保持原图的宽高比。这对于创建缩略图或者适应不同屏幕尺寸的展示非常有用。 2. 水印添加: 在图片上添加水印是保护版权...

    Java图片处理类库SimpleImage.zip

    SimpleImage是阿里巴巴的一个Java图片处理的类库,可以实现图片缩略、水印等处理。 SimpleImage中的ImageRender是图片处理的基类,它是一个抽象类,我们看到,该类中定义了一个抽象方法render(),同时持有一个对...

    BulkLoader文件加载类库

    BulkLoader文件加载类库是一个高效且实用的工具,主要用于大批量数据的导入和导出操作。在IT领域,尤其是在数据库管理和大数据处理中,快速、批量地处理数据是至关重要的。BulkLoader类库就是为了满足这样的需求而...

    SDWebImage类库

    通过以上介绍,我们可以看出SDWebImage是一个强大且全面的图片加载库,能够有效地解决iOS应用中网络图片加载的各种需求。无论你是新手还是经验丰富的开发者,都能从中受益。如果你在使用过程中遇到任何问题,可以...

    ok图片71207列表类库

    "ok图片71207列表类库"看起来像是一个专门为E4A设计的图像处理或显示库,用于在应用中管理和展示图片列表。 这个类库的核心概念可能包含以下几个方面: 1. **列表视图(ListView)**:在Android开发中,ListView是...

    e4a/易安卓/一个人的牢状态栏类库.zip

    总之,“一个人的牢状态栏类库”为易安卓开发者提供了一种高效、灵活的方式来管理应用的状态栏,提升了应用的整体视觉体验和用户互动性。通过充分利用这个类库,开发者可以专注于应用的核心功能,而不必过于担心状态...

    c#动态加载 VC动态库 和C#类库样例

    在.NET框架中,C#语言提供了强大的功能来实现动态加载外部库,这包括VC++编译的动态链接库(.dll)以及C#自身编译的类库(.dll)。这个场景下的“动态加载”指的是在程序运行时,而不是在编译时决定要使用的库或者类...

    php图片添加水印类库

    1. **实例化类库**:根据类库文档创建一个水印对象,传递必要的配置参数。 2. **加载图片**:调用类库的函数读取要添加水印的图片文件。 3. **添加水印**:调用添加水印的方法,这通常会处理配置、计算位置并执行...

    Android-一个可以加载超长图的类库的测试demo

    总结起来,“Android-一个可以加载超长图的类库的测试demo”是针对Android平台的大图加载问题提供的解决方案,利用“subsampling-scale-image-view”类库,开发者能构建高性能、用户友好的图片查看功能。通过学习和...

    CI中使用其他类库解决方法参考

    - **扩展Loader**: 为了方便地加载PEAR类库,需要自定义一个Loader类。上述代码片段展示了一个名为`FG_Loader`的类,它继承自CI默认的`CI_Loader`类。 - **方法重写**: 重写了`pear()`方法,用于加载指定的类库。该...

    一个php连接mysql数据库操作类库.zip

    以上就是对"一个php连接mysql数据库操作类库"的详细解析,这个类库为PHP开发者提供了一种高效且安全的方式来管理和操作MySQL数据库,极大地简化了开发流程。通过熟练掌握和使用这样的工具,可以提升开发效率,减少...

    一个可以返回验证码图片的类库(C#源码)

    验证码字符个数、生成图片宽度、高度自定均可由构造方法自定,无参构造生成默认字符个数和默认大小的Image,方法 GetImgWithValidateCode()返回生成的验证码图片,方法 IsRight(string inputValCode) 判断用户输入的...

    ios的网络图片下载类库

    为了高效地处理网络图片的下载,开发者通常会使用专门的类库,而"SDWebImage"就是其中一个非常著名的解决方案。本文将深入探讨SDWebImage的工作原理、功能特点以及如何在实际项目中应用。 SDWebImage是一个强大的...

    一款纯JS图片局部放大镜类库

    本文将深入探讨一个基于纯JavaScript实现的图片局部放大镜类库,以及它如何与ASP.NET框架结合使用。 首先,我们要理解"纯JS图片局部放大镜类库"的概念。这是一种允许用户在网页上查看图片细节的工具,它通过在鼠标...

    一个功能比较齐全的分页类库.zip

    5. **性能优化**:一个好的分页类库应该考虑性能问题,避免一次性加载过多数据,该类库可能已经进行了优化,以减少内存消耗和提升响应速度。 6. **文档完整**:压缩包内包含详细的使用说明,帮助开发者快速理解和...

    一个可以播放任意声音的类库

    今天我们将深入探讨一个能够播放任意声音的类库,它不仅支持音乐播放,还涵盖了一系列音频格式,如MP3和WMV。这个类库为开发者提供了一种便捷的方式来集成音频播放功能,使得调用和参考变得简单易行。 首先,我们来...

Global site tag (gtag.js) - Google Analytics