Web Image
=========
[![Build Status](http://img.shields.io/travis/rs/SDWebImage/master.svg?style=flat)](https://travis-ci.org/rs/SDWebImage)
[![Pod Version](http://img.shields.io/cocoapods/v/SDWebImage.svg?style=flat)](http://cocoadocs.org/docsets/SDWebImage/)
[![Pod Platform](http://img.shields.io/cocoapods/p/SDWebImage.svg?style=flat)](http://cocoadocs.org/docsets/SDWebImage/)
[![Pod License](http://img.shields.io/cocoapods/l/SDWebImage.svg?style=flat)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![Dependency Status](https://www.versioneye.com/objective-c/sdwebimage/3.3/badge.svg?style=flat)](https://www.versioneye.com/objective-c/sdwebimage/3.3)
[![Reference Status](https://www.versioneye.com/objective-c/sdwebimage/reference_badge.svg?style=flat)](https://www.versioneye.com/objective-c/sdwebimage/references)
This library provides a category for UIImageView with support for remote images coming from the web.
It provides:
- An UIImageView category adding web image and cache management to the Cocoa Touch framework
- An asynchronous image downloader
- An asynchronous memory + disk image caching with automatic cache expiration handling
- Animated GIF support
- WebP format support
- A background image decompression
- A guarantee that the same URL won't be downloaded several times
- A guarantee that bogus URLs won't be retried again and again
- A guarantee that main thread will never be blocked
- Performances!
- Use GCD and ARC
- Arm64 support
NOTE: The version 3.0 of SDWebImage isn't fully backward compatible with 2.0 and requires iOS 5.1.1
minimum deployement version. If you need iOS < 5.0 support, please use the last [2.0 version](https://github.com/rs/SDWebImage/tree/2.0-compat).
[How is SDWebImage better than X?](https://github.com/rs/SDWebImage/wiki/How-is-SDWebImage-better-than-X%3F)
Who Use It
----------
Find out [who uses SDWebImage](https://github.com/rs/SDWebImage/wiki/Who-Uses-SDWebImage) and add your app to the list.
How To Use
----------
API documentation is available at [CocoaDocs - SDWebImage](http://cocoadocs.org/docsets/SDWebImage/)
### Using UIImageView+WebCache category with UITableView
Just #import the UIImageView+WebCache.h header, and call the setImageWithURL:placeholderImage:
method from the tableView:cellForRowAtIndexPath: UITableViewDataSource method. Everything will be
handled for you, from async downloads to caching management.
```objective-c
#import <SDWebImage/UIImageView+WebCache.h>
...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:MyIdentifier] autorelease];
}
// Here we use the new provided setImageWithURL: method to load the web image
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
cell.textLabel.text = @"My Text";
return cell;
}
```
### Using blocks
With blocks, you can be notified about the image download progress and whenever the image retrival
has completed with success or not:
```objective-c
// Here we use the new provided setImageWithURL: method to load the web image
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {... completion code here ...}];
```
Note: neither your success nor failure block will be call if your image request is canceled before completion.
### Using SDWebImageManager
The SDWebImageManager is the class behind the UIImageView+WebCache category. It ties the
asynchronous downloader with the image cache store. You can use this class directly to benefit
from web image downloading with caching in another context than a UIView (ie: with Cocoa).
Here is a simple example of how to use SDWebImageManager:
```objective-c
SDWebImageManager *manager = [SDWebImageManager sharedManager];
[manager downloadWithURL:imageURL
options:0
progress:^(NSInteger receivedSize, NSInteger expectedSize)
{
// progression tracking code
}
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished)
{
if (image)
{
// do something with image
}
}];
```
### Using Asynchronous Image Downloader Independently
It's also possible to use the async image downloader independently:
```objective-c
[SDWebImageDownloader.sharedDownloader downloadImageWithURL:imageURL
options:0
progress:^(NSInteger receivedSize, NSInteger expectedSize)
{
// progression tracking code
}
completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished)
{
if (image && finished)
{
// do something with image
}
}];
```
### Using Asynchronous Image Caching Independently
It is also possible to use the aync based image cache store independently. SDImageCache
maintains a memory cache and an optional disk cache. Disk cache write operations are performed
asynchronous so it doesn't add unnecessary latency to the UI.
The SDImageCache class provides a singleton instance for convenience but you can create your own
instance if you want to create separated cache namespace.
To lookup the cache, you use the `queryDiskCacheForKey:done:` method. If the method returns nil, it means the cache
doesn't currently own the image. You are thus responsible for generating and caching it. The cache
key is an application unique identifier for the image to cache. It is generally the absolute URL of
the image.
```objective-c
SDImageCache *imageCache = [[SDImageCache alloc] initWithNamespace:@"myNamespace"];
[imageCache queryDiskCacheForKey:myCacheKey done:^(UIImage *image)
{
// image is not nil if image was found
}];
```
By default SDImageCache will lookup the disk cache if an image can't be found in the memory cache.
You can prevent this from happening by calling the alternative method `imageFromMemoryCacheForKey:`.
To store an image into the cache, you use the storeImage:forKey: method:
```objective-c
[[SDImageCache sharedImageCache] storeImage:myImage forKey:myCacheKey];
```
By default, the image will be stored in memory cache as well as on disk cache (asynchronously). If
you want only the memory cache, use the alternative method storeImage:forKey:toDisk: with a negative
third argument.
### Using cache key filter
Sometime, you may not want to use the image URL as cache key because part of the URL is dynamic
(i.e.: for access control purpose). SDWebImageManager provides a way to set a cache key filter that
takes the NSURL as input, and output a cache key NSString.
The following example sets a filter in the application delegate that will remove any query-string from
the URL before to use it as a cache key:
```objective-c
- (BOOL)application:(UIApplicat
没有合适的资源?快使用搜索试试~ 我知道了~
image-web.zip_DEM
共77个文件
m:23个
h:20个
xcscheme:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 116 浏览量
2022-09-24
07:01:38
上传
评论
收藏 2.89MB ZIP 举报
温馨提示
ios版本,图片加载功能,提供延迟加载等内容,包含dem和图片,供大家学习参考
资源推荐
资源详情
资源评论
收起资源包目录
image-web.zip (77个子文件)
SDWebImage-master
.travis.yml 807B
.gitmodules 102B
SDWebImage.xcworkspace
contents.xcworkspacedata 333B
xcshareddata
xcschemes
SDWebImage+WebP.xcscheme 2KB
SDWebImage+MKAnnotation.xcscheme 2KB
SDWebImageFramework.xcscheme 2KB
SDWebImage.xcscheme 2KB
SDWebImage Demo.xcscheme 3KB
Tests.xcscheme 3KB
SDWebImage.xcodeproj
project.pbxproj 86KB
LICENSE 1KB
.DS_Store 8KB
Examples
CustomPathImages
4ad9ae8eabfec60b40bf48f0bfc2d120 2.74MB
SDWebImage Demo.xcodeproj
project.xcworkspace
contents.xcworkspacedata 160B
project.pbxproj 18KB
Default-568h@2x.png 18KB
.DS_Store 6KB
SDWebImage Demo
placeholder@2x.png 6KB
main.m 349B
MasterViewController.m 38KB
SDWebImage Demo-Info.plist 1KB
DetailViewController.h 352B
AppDelegate.h 367B
AppDelegate.m 3KB
.DS_Store 6KB
SDWebImage Demo-Prefix.pch 333B
DetailViewController.m 2KB
MasterViewController.h 350B
placeholder.png 3KB
en.lproj
DetailViewController.xib 7KB
MasterViewController.xib 6KB
SDWebImage.podspec 2KB
.gitignore 546B
Vendors
.DS_Store 6KB
libwebp
Tests
Podfile 319B
SDWebImage Tests.xcodeproj
project.pbxproj 14KB
Tests
UIImageMultiFormatTests.m 949B
SDImageCacheTests.m 765B
SDWebImageManagerTests.m 2KB
Tests-Info.plist 694B
en.lproj
InfoPlist.strings 45B
Tests-Prefix.pch 210B
README.md 12KB
SDWebImage
SDWebImageDownloaderOperation.m 16KB
UIImage+GIF.h 382B
MKAnnotationView+WebCache.h 4KB
UIImage+WebP.h 490B
SDWebImageDownloader.h 6KB
UIView+WebCacheOperation.m 2KB
SDImageCache.h 7KB
SDWebImageCompat.h 2KB
UIView+WebCacheOperation.h 970B
SDWebImageManager.m 13KB
SDWebImageCompat.m 1KB
SDWebImagePrefetcher.m 5KB
UIImage+GIF.m 5KB
SDWebImagePrefetcher.h 4KB
UIButton+WebCache.h 10KB
UIImageView+WebCache.h 8KB
SDWebImageDecoder.m 3KB
UIImage+MultiFormat.h 263B
UIImage+MultiFormat.m 3KB
UIImage+WebP.m 2KB
.DS_Store 10KB
SDWebImageManager.h 9KB
SDWebImageDownloader.m 11KB
SDWebImageDecoder.h 453B
UIButton+WebCache.m 7KB
UIImageView+WebCache.m 6KB
SDImageCache.m 19KB
NSData+ImageContentType.h 401B
MKAnnotationView+WebCache.m 3KB
NSData+ImageContentType.m 1005B
UIImageView+HighlightedWebCache.m 3KB
SDWebImageOperation.h 329B
UIImageView+HighlightedWebCache.h 4KB
SDWebImageDownloaderOperation.h 2KB
共 77 条
- 1
资源评论
weixin_42653672
- 粉丝: 93
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Javascript和微信小程序的Anna设计源码
- 基于Java的仿制品设计源码 - bilibili
- 基于Javascript的影视动画设计源码 - cad
- 基于Java和深度学习的瓦斯浓度预测系统后端设计源码 - 瓦斯浓度预测后端
- Screenshot_20240528_103010.jpg
- 基于Python的新能源承载力计算及界面设计源码 - HAINING-DG
- 基于Java的本科探索学习项目设计源码 - 本科探索
- 基于Javascript和Python的微商城项目设计源码 - MicroMall
- 基于Java的网上订餐系统设计源码 - online ordering system
- 基于Javascript的超级美眉网络资源管理应用模块设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功