`
sunqichao
  • 浏览: 28645 次
  • 性别: 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指定缓存图片大小

    在本篇中,我们将深入探讨如何在使用SDWebImage时指定缓存图片的大小,以优化内存管理和存储空间的利用。 首先,了解SDWebImage的工作原理。它采用了一种智能的缓存策略,包括内存缓存(Memory Cache)和磁盘缓存...

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

    首先,SDWebImage是一个广泛使用的第三方库,专门处理网络图片的加载和缓存。它提供了异步下载和缓存图片的功能,避免了主线程被阻塞,从而保证了界面的流畅性。其主要特性包括: 1. **异步加载**:SDWebImage会在...

    SDWebImage远程图片加载

    SDWebImage是一个广泛使用的iOS开发框架,专门用于高效地加载和缓存远程图片。这个库由多个关键组件组成,使得在应用中处理网络图片变得轻松而高效。以下是对每个组件的详细解释: 1. UIImageView+WebCache:这是...

    SDWebImage 异步加载图片 多线程刷新界面

    SDWebImage是由Alamofire Software Foundation维护的一个开源库,它为iOS、tvOS、macOS和Flutter提供了强大的网络图片加载功能。这个库的主要特点是异步加载,这意味着图片下载不会影响UI的响应速度,用户可以在等待...

    iOS图片异步加载SDWebImage

    SDWebImage是一个广受欢迎的第三方库,它提供了强大的图片异步加载和缓存功能,能够显著提升用户体验并优化性能。 **SDWebImage的基本原理** 1. **异步加载**:SDWebImage采用异步加载策略,这意味着图片下载是在...

    SDWebImage远程图片异步加载

    SDWebImage是一款在iOS开发中常用的库,专门用于优化应用中的网络图片加载。它支持远程图片的异步加载,能够显著提升用户体验,避免因图片加载阻塞UI导致的应用卡顿。下面将详细介绍SDWebImage的工作原理、功能以及...

    IOS SDWebImage异步下载缓存图片(支持离线)

    SDWebImage是一个广泛使用的第三方库,它提供了强大的异步加载和缓存网络图片的功能,同时也支持离线模式,使得用户在无网络连接时也能查看之前加载过的图片。本文将详细介绍如何利用SDWebImage来实现这一目标。 ...

    ios通过SDWebImage实现图片加载时的渐变效果

    SDWebImage是一个流行的第三方库,用于在iOS中高效地下载和缓存网络图片。它提供了许多功能,包括异步加载、内存和磁盘缓存以及进度回调等。本文将探讨如何利用SDWebImage实现图片加载时的渐变效果,让图片的显示...

    SDWebImage图片加载框架

    SDWebImage是一个在iOS、macOS以及tvOS平台上广泛使用的第三方图片加载库,它极大地简化了应用程序中网络图片的加载、缓存和显示过程。这个框架以其高效、易用和功能丰富而受到开发者们的青睐。下面我们将深入探讨...

    IOS网络图片缓存类库SDWebImage

    SDWebImage是一款高效、强大的图片下载与缓存库,它为开发者提供了便利的API,使得图片的加载过程更加流畅,用户体验更佳。这款开源库由Alexander Fajardo创建,并且在GitHub上广受欢迎,拥有丰富的功能和良好的社区...

    异步加载和缓存

    在iOS开发中,异步加载和缓存是两个至关重要的概念,特别是在处理大量数据和多媒体内容时,如在UITableView或UICollectionView中显示图片。这两个技术能够显著提升应用性能,提高用户体验,同时节省系统资源。 首先...

    iOS 图片异步加载 图片缓存

    在iOS开发中,图片异步加载和图片缓存是提高应用性能和用户体验的关键技术。这两个概念密切相关,因为异步加载可以防止UI阻塞,而缓存则可以减少网络请求,加速图片显示。以下是对这两个主题的详细解释: **图片...

    【无限互联】SDWebImage图片缓存流程分析[归类].pdf

    总的来说,SDWebImage是一个高效、灵活的图片加载和缓存框架,它的核心特性包括异步加载、自动缓存、内存和磁盘双层缓存、加载进度回调以及取消操作等。这些特性使得它在iOS应用开发中被广泛采用,特别是在处理大量...

    IOS异步加载缓存图片

    这个"异步加载缓存图片"的小例子,可能涵盖了以上的一些技术点,通过阅读源代码,我们可以学习到如何在实际项目中实现这些功能,提升应用的性能和用户体验。在开发过程中,应该根据具体需求和场景,灵活运用这些工具...

    IOS图片加载(SDWebImage+cocoaPods)

    接下来,我们来看如何使用SDWebImage加载网络图片。假设有一个UIImageView需要加载网络图片,可以这样实现: Swift示例: ```swift imageView.sd_setImage(with: URL(string: "https://example.com/image.jpg")) {...

    异步加载图片sdwebimage

    总的来说,SDWebImage是一个强大且易用的iOS图片异步加载库,它提供了丰富的功能和高度的定制性,能够满足大多数图片加载需求。无论你是新手开发者还是经验丰富的iOS工程师,SDWebImage都是一个值得信赖的工具。通过...

    图片下载 SDWebImage

    总的来说,SDWebImage是一个强大且灵活的图片加载库,它不仅简化了图片加载的过程,还提供了缓存管理和KVO等高级功能。通过合理地利用这些特性,开发者可以构建出更加流畅、响应式的iOS应用。在实际项目中,可以根据...

    SDWebImage

    SDWebImage是一个在iOS、macOS以及tvOS平台上广泛使用的开源库,主要用于加载和缓存网络图像。这个库由Alamofire作者SDAVAssetExportSession的作者Steve Dodsworth开发,旨在解决在移动应用中高效地处理网络图片的...

    swift-SDWebImage-具有缓存支持的异步图像下载器作为UIImageView类别

    Swift中的SDWebImage是一个流行的第三方库,专门用于在iOS应用中实现异步图像加载和...总之,SDWebImage是iOS开发中不可或缺的工具,它极大地简化了网络图片加载和缓存的工作,让开发者可以更专注于应用的核心功能。

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

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

Global site tag (gtag.js) - Google Analytics