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 510原文:http://blog.csdn.net/develo ... -
IOS 学习 Key-value coding
2013-11-19 10:56 838原文:http://blog.csdn.net/develo ... -
IOS block dispatch_queue
2012-11-05 15:04 938研究了3天的block使用,今天终于写出了自己的第一个b ... -
socket编程 详解
2012-08-28 08:57 1110对TCP/IP、UDP ... -
iOS ASIHTTPRequest详解 非常强大
2012-08-27 13:20 2449ASIHTTPRequest对CFNetwork API ... -
今天看了ps的简介,决定一定要把它给学会,首先了解一下基础知识
2012-08-22 00:01 7741.位图图像的概念 位图图像使用像素来表示图像,因此也 ... -
coredata 理解
2012-06-15 13:08 1408昨天开始认真的看coredata的用法,今天终于明白的其中的 ... -
#ifndef、#def、#endif说明
2012-06-13 13:43 900你所遇到的这几个 ... -
ios 数据存储的四种常用方式NSKeyedArchiver/NSUserDefaults/Writ
2012-06-13 10:49 1377OK,今天Himi介绍游戏 ... -
AVAudioPlayer 音频播放器 使用 教程
2012-06-05 14:33 1249IOS中有三种播放音频的方式:AVAudioPlaye ... -
使用iOS手势UIGestureRecognizer
2012-06-05 10:10 1253UIKit中包含了UIGestureRecognizer ... -
NSAutoReleasePool
2012-05-28 14:40 786好记性不如烂博客. 今天需要记录的是关于NSAutoR ... -
NSLocalizedString 实现国际化
2012-05-28 11:23 864一、获取系统所支持的国际化信息 在国际化之前,你可以在ip ... -
自定义 UIColor baseView 父类子类方法名 不能重复
2012-05-24 11:04 868原来是因为方法名字重复了,因为baseview的方法名和 ... -
Android图片处理(Matrix,ColorMatrix)
2012-05-22 09:24 877在编程中有时候需要 ... -
objectForKey与valueForKey在NSDictionary中的差异
2012-05-18 15:38 814从 NSDictionary 取值的时候有两个方法,ob ... -
symbol(s) not found for architexture i386 路径错误
2012-05-16 09:55 1579昨天这个错误又出现 ... -
symbol(s) not found for architexture i386 报错
2012-05-15 18:40 773我靠啊,今天下午出现了个这个错误,找了好多资料,发现让添加li ... -
symbol(s) not found for architexture i386 报错
2012-05-15 18:40 0我靠啊,今天下午出现了个这个错误,找了好多资料,发现让添加li ... -
推送 证书 联机调试
2012-05-15 15:16 855联机调试出现问题, ...
相关推荐
在本篇中,我们将深入探讨如何在使用SDWebImage时指定缓存图片的大小,以优化内存管理和存储空间的利用。 首先,了解SDWebImage的工作原理。它采用了一种智能的缓存策略,包括内存缓存(Memory Cache)和磁盘缓存...
首先,SDWebImage是一个广泛使用的第三方库,专门处理网络图片的加载和缓存。它提供了异步下载和缓存图片的功能,避免了主线程被阻塞,从而保证了界面的流畅性。其主要特性包括: 1. **异步加载**:SDWebImage会在...
SDWebImage是一个广泛使用的iOS开发框架,专门用于高效地加载和缓存远程图片。这个库由多个关键组件组成,使得在应用中处理网络图片变得轻松而高效。以下是对每个组件的详细解释: 1. UIImageView+WebCache:这是...
SDWebImage是由Alamofire Software Foundation维护的一个开源库,它为iOS、tvOS、macOS和Flutter提供了强大的网络图片加载功能。这个库的主要特点是异步加载,这意味着图片下载不会影响UI的响应速度,用户可以在等待...
SDWebImage是一个广受欢迎的第三方库,它提供了强大的图片异步加载和缓存功能,能够显著提升用户体验并优化性能。 **SDWebImage的基本原理** 1. **异步加载**:SDWebImage采用异步加载策略,这意味着图片下载是在...
SDWebImage是一款在iOS开发中常用的库,专门用于优化应用中的网络图片加载。它支持远程图片的异步加载,能够显著提升用户体验,避免因图片加载阻塞UI导致的应用卡顿。下面将详细介绍SDWebImage的工作原理、功能以及...
SDWebImage是一个广泛使用的第三方库,它提供了强大的异步加载和缓存网络图片的功能,同时也支持离线模式,使得用户在无网络连接时也能查看之前加载过的图片。本文将详细介绍如何利用SDWebImage来实现这一目标。 ...
SDWebImage是一个流行的第三方库,用于在iOS中高效地下载和缓存网络图片。它提供了许多功能,包括异步加载、内存和磁盘缓存以及进度回调等。本文将探讨如何利用SDWebImage实现图片加载时的渐变效果,让图片的显示...
SDWebImage是一个在iOS、macOS以及tvOS平台上广泛使用的第三方图片加载库,它极大地简化了应用程序中网络图片的加载、缓存和显示过程。这个框架以其高效、易用和功能丰富而受到开发者们的青睐。下面我们将深入探讨...
SDWebImage是一款高效、强大的图片下载与缓存库,它为开发者提供了便利的API,使得图片的加载过程更加流畅,用户体验更佳。这款开源库由Alexander Fajardo创建,并且在GitHub上广受欢迎,拥有丰富的功能和良好的社区...
在iOS开发中,异步加载和缓存是两个至关重要的概念,特别是在处理大量数据和多媒体内容时,如在UITableView或UICollectionView中显示图片。这两个技术能够显著提升应用性能,提高用户体验,同时节省系统资源。 首先...
在iOS开发中,图片异步加载和图片缓存是提高应用性能和用户体验的关键技术。这两个概念密切相关,因为异步加载可以防止UI阻塞,而缓存则可以减少网络请求,加速图片显示。以下是对这两个主题的详细解释: **图片...
总的来说,SDWebImage是一个高效、灵活的图片加载和缓存框架,它的核心特性包括异步加载、自动缓存、内存和磁盘双层缓存、加载进度回调以及取消操作等。这些特性使得它在iOS应用开发中被广泛采用,特别是在处理大量...
这个"异步加载缓存图片"的小例子,可能涵盖了以上的一些技术点,通过阅读源代码,我们可以学习到如何在实际项目中实现这些功能,提升应用的性能和用户体验。在开发过程中,应该根据具体需求和场景,灵活运用这些工具...
接下来,我们来看如何使用SDWebImage加载网络图片。假设有一个UIImageView需要加载网络图片,可以这样实现: Swift示例: ```swift imageView.sd_setImage(with: URL(string: "https://example.com/image.jpg")) {...
总的来说,SDWebImage是一个强大且易用的iOS图片异步加载库,它提供了丰富的功能和高度的定制性,能够满足大多数图片加载需求。无论你是新手开发者还是经验丰富的iOS工程师,SDWebImage都是一个值得信赖的工具。通过...
总的来说,SDWebImage是一个强大且灵活的图片加载库,它不仅简化了图片加载的过程,还提供了缓存管理和KVO等高级功能。通过合理地利用这些特性,开发者可以构建出更加流畅、响应式的iOS应用。在实际项目中,可以根据...
SDWebImage是一个在iOS、macOS以及tvOS平台上广泛使用的开源库,主要用于加载和缓存网络图像。这个库由Alamofire作者SDAVAssetExportSession的作者Steve Dodsworth开发,旨在解决在移动应用中高效地处理网络图片的...
Swift中的SDWebImage是一个流行的第三方库,专门用于在iOS应用中实现异步图像加载和...总之,SDWebImage是iOS开发中不可或缺的工具,它极大地简化了网络图片加载和缓存的工作,让开发者可以更专注于应用的核心功能。
SDWebImage是以Category的形式对UIImageView进行扩展。 是git上的一个开源项目 使用了它之后,让UIImageView可以直接设置图片的Url地址,剩下的下载,缓存就交给SDWebImage处理吧。