234,SDWebImage的使用
2016-01-27 13:09
369 查看
ViewController.m:
#import "ViewController.h"
#import "UIImageView+WebCache.h"
#import "SDImageCache.h"
@interface
ViewController ()
@property (nonatomic,strong)
UIImageView *imageView;
@end
@implementation ViewController
- (UIImageView *)imageView{
if (!_imageView) {
_imageView = [[UIImageView
alloc] initWithFrame:self.view.frame];
[self.view
addSubview:_imageView];
}
return
_imageView;
}
- (void)viewDidLoad{
SDImageCache *imageCache = [SDImageCache
sharedImageCache];
//maxCacheAge:缓存不被清理的有效期,单位为秒。没有进行任何设置,默认是一个星期,7天
//maxCacheSize:限制缓存大小,单位为字节
imageCache.maxCacheAge =
31 * 24 * 60 *
60;
//设置8M硬盘缓存
imageCache.maxCacheSize =
8 * 1024 *
1024;
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
NSURL *url = [NSURL
URLWithString:@"http://pic4.nipic.com/20090807/2082016_093903000_2.jpg"];
//1,传入url便可
//[self.imageView sd_setImageWithURL:url];
//2,传入url,等下载完成后,可以执行一些操作
//[self.imageView sd_setImageWithURL:url completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
// NSLog(@"下载完成!当前线程:%@,image:%@,imageURL:%@",[NSThread
currentThread],image,imageURL);
//}];
//3,传入url,占位图,处理情况,输出一些进度数,图片下载完成后,进行一些处理
//SDWebImageRetryFailed图片下载失败,重试下载
//SDWebImageLowPriority当用户操作界面,暂停下载,等用户没有操作界面,继续下载
//SDWebImageProgressiveDownload在图片上显示下载进度
UIImage *placeholder = [UIImage
imageNamed:@"placeholder"];
SDWebImageOptions options =
SDWebImageRetryFailed | SDWebImageLowPriority |
SDWebImageProgressiveDownload;
[self.imageView
sd_setImageWithURL:url
placeholderImage:placeholder options:options
progress:^(NSInteger receivedSize,
NSInteger expectedSize) {//多次被执行
NSLog(@"进度:%f",1.0 *
receivedSize / expectedSize);
} completed:^(UIImage *image,
NSError *error, SDImageCacheType cacheType,
NSURL *imageURL) {
NSLog(@"下载完成!当前线程:%@,image:%@,imageURL:%@",[NSThread
currentThread],image,imageURL);
}];
}
@end
//2016-01-27 12:20:34.552 2,SDWebImage[1405:216587]
进度:-0.000000
//2016-01-27 12:20:34.732 2,SDWebImage[1405:216587]
进度:0.000000
//2016-01-27 12:20:34.740 2,SDWebImage[1405:216587]
进度:0.005714
//2016-01-27 12:20:34.746 2,SDWebImage[1405:216587]
进度:0.012962
//2016-01-27 12:20:34.773 2,SDWebImage[1405:216587]
进度:0.020210
//2016-01-27 12:20:34.783 2,SDWebImage[1405:216587]
进度:0.034707
//2016-01-27 12:20:34.804 2,SDWebImage[1405:216587]
进度:0.041955
//2016-01-27 12:20:34.820 2,SDWebImage[1405:216587]
进度:0.049203
//2016-01-27 12:20:34.829 2,SDWebImage[1405:216587]
进度:0.070947
//2016-01-27 12:20:34.846 2,SDWebImage[1405:216587]
进度:0.099940
//2016-01-27 12:20:34.864 2,SDWebImage[1405:216587]
进度:0.107188
//2016-01-27 12:20:34.881 2,SDWebImage[1405:216587]
进度:0.121684
//2016-01-27 12:20:34.896 2,SDWebImage[1405:216587]
进度:0.172421
//2016-01-27 12:20:34.913 2,SDWebImage[1405:216587]
进度:0.215910
//2016-01-27 12:20:34.932 2,SDWebImage[1405:216587]
进度:0.230406
//2016-01-27 12:20:34.948 2,SDWebImage[1405:216587]
进度:0.331880
//2016-01-27 12:20:34.964 2,SDWebImage[1405:216587]
进度:0.447850
//2016-01-27 12:20:34.980 2,SDWebImage[1405:216587]
进度:0.527579
//2016-01-27 12:20:35.000 2,SDWebImage[1405:216587]
进度:0.636301
//2016-01-27 12:20:35.020 2,SDWebImage[1405:216587]
进度:0.796419
//2016-01-27 12:20:35.049 2,SDWebImage[1405:216587]
进度:0.905141
//2016-01-27 12:20:35.065 2,SDWebImage[1405:216587]
进度:0.984871
//2016-01-27 12:20:35.065 2,SDWebImage[1405:216587]
进度:1.000000
//2016-01-27 12:20:35.066 2,SDWebImage[1405:216587]
下载完成!当前线程:<NSThread: 0x7fa6b3f04d30>{number = 1, name = main},image:<UIImage: 0x7fa6b3c79270>, {341.33333333333331, 213.33333333333334},imageURL:http://pic4.nipic.com/20090807/2082016_093903000_2.jpg
//
AppDelegate.m:
#import "AppDelegate.h"
#import "SDWebImageManager.h"
@interface
AppDelegate ()
@end
@implementation AppDelegate
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application{
//当程序收到内存警告的时候,需要清理内存,取消所有NSOperation等
SDWebImageManager *manger = [SDWebImageManagersharedManager];
//取消所有操作
[manger cancelAll];
//清理内存
[manger.imageCache
clearMemory];
}
@end
#import "ViewController.h"
#import "UIImageView+WebCache.h"
#import "SDImageCache.h"
@interface
ViewController ()
@property (nonatomic,strong)
UIImageView *imageView;
@end
@implementation ViewController
- (UIImageView *)imageView{
if (!_imageView) {
_imageView = [[UIImageView
alloc] initWithFrame:self.view.frame];
[self.view
addSubview:_imageView];
}
return
_imageView;
}
- (void)viewDidLoad{
SDImageCache *imageCache = [SDImageCache
sharedImageCache];
//maxCacheAge:缓存不被清理的有效期,单位为秒。没有进行任何设置,默认是一个星期,7天
//maxCacheSize:限制缓存大小,单位为字节
imageCache.maxCacheAge =
31 * 24 * 60 *
60;
//设置8M硬盘缓存
imageCache.maxCacheSize =
8 * 1024 *
1024;
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
NSURL *url = [NSURL
URLWithString:@"http://pic4.nipic.com/20090807/2082016_093903000_2.jpg"];
//1,传入url便可
//[self.imageView sd_setImageWithURL:url];
//2,传入url,等下载完成后,可以执行一些操作
//[self.imageView sd_setImageWithURL:url completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
// NSLog(@"下载完成!当前线程:%@,image:%@,imageURL:%@",[NSThread
currentThread],image,imageURL);
//}];
//3,传入url,占位图,处理情况,输出一些进度数,图片下载完成后,进行一些处理
//SDWebImageRetryFailed图片下载失败,重试下载
//SDWebImageLowPriority当用户操作界面,暂停下载,等用户没有操作界面,继续下载
//SDWebImageProgressiveDownload在图片上显示下载进度
UIImage *placeholder = [UIImage
imageNamed:@"placeholder"];
SDWebImageOptions options =
SDWebImageRetryFailed | SDWebImageLowPriority |
SDWebImageProgressiveDownload;
[self.imageView
sd_setImageWithURL:url
placeholderImage:placeholder options:options
progress:^(NSInteger receivedSize,
NSInteger expectedSize) {//多次被执行
NSLog(@"进度:%f",1.0 *
receivedSize / expectedSize);
} completed:^(UIImage *image,
NSError *error, SDImageCacheType cacheType,
NSURL *imageURL) {
NSLog(@"下载完成!当前线程:%@,image:%@,imageURL:%@",[NSThread
currentThread],image,imageURL);
}];
}
@end
//2016-01-27 12:20:34.552 2,SDWebImage[1405:216587]
进度:-0.000000
//2016-01-27 12:20:34.732 2,SDWebImage[1405:216587]
进度:0.000000
//2016-01-27 12:20:34.740 2,SDWebImage[1405:216587]
进度:0.005714
//2016-01-27 12:20:34.746 2,SDWebImage[1405:216587]
进度:0.012962
//2016-01-27 12:20:34.773 2,SDWebImage[1405:216587]
进度:0.020210
//2016-01-27 12:20:34.783 2,SDWebImage[1405:216587]
进度:0.034707
//2016-01-27 12:20:34.804 2,SDWebImage[1405:216587]
进度:0.041955
//2016-01-27 12:20:34.820 2,SDWebImage[1405:216587]
进度:0.049203
//2016-01-27 12:20:34.829 2,SDWebImage[1405:216587]
进度:0.070947
//2016-01-27 12:20:34.846 2,SDWebImage[1405:216587]
进度:0.099940
//2016-01-27 12:20:34.864 2,SDWebImage[1405:216587]
进度:0.107188
//2016-01-27 12:20:34.881 2,SDWebImage[1405:216587]
进度:0.121684
//2016-01-27 12:20:34.896 2,SDWebImage[1405:216587]
进度:0.172421
//2016-01-27 12:20:34.913 2,SDWebImage[1405:216587]
进度:0.215910
//2016-01-27 12:20:34.932 2,SDWebImage[1405:216587]
进度:0.230406
//2016-01-27 12:20:34.948 2,SDWebImage[1405:216587]
进度:0.331880
//2016-01-27 12:20:34.964 2,SDWebImage[1405:216587]
进度:0.447850
//2016-01-27 12:20:34.980 2,SDWebImage[1405:216587]
进度:0.527579
//2016-01-27 12:20:35.000 2,SDWebImage[1405:216587]
进度:0.636301
//2016-01-27 12:20:35.020 2,SDWebImage[1405:216587]
进度:0.796419
//2016-01-27 12:20:35.049 2,SDWebImage[1405:216587]
进度:0.905141
//2016-01-27 12:20:35.065 2,SDWebImage[1405:216587]
进度:0.984871
//2016-01-27 12:20:35.065 2,SDWebImage[1405:216587]
进度:1.000000
//2016-01-27 12:20:35.066 2,SDWebImage[1405:216587]
下载完成!当前线程:<NSThread: 0x7fa6b3f04d30>{number = 1, name = main},image:<UIImage: 0x7fa6b3c79270>, {341.33333333333331, 213.33333333333334},imageURL:http://pic4.nipic.com/20090807/2082016_093903000_2.jpg
//
AppDelegate.m:
#import "AppDelegate.h"
#import "SDWebImageManager.h"
@interface
AppDelegate ()
@end
@implementation AppDelegate
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application{
//当程序收到内存警告的时候,需要清理内存,取消所有NSOperation等
SDWebImageManager *manger = [SDWebImageManagersharedManager];
//取消所有操作
[manger cancelAll];
//清理内存
[manger.imageCache
clearMemory];
}
@end
相关文章推荐
- aptitude
- Linux文件类型
- c#获取当前年的周数,当前月的天数
- XML——写出XML文档(XSLT+StAX)
- 房屋产权=房屋所有权+土地使用权
- Erlang启动过程分析
- Android笔记:根据进度代码改变progressbar背景颜色,ClipDrawable,LayerDrawable,setProgressDrawable
- WordPress优化之利用Nginx fastcgi_cache缓存加速
- 算法——A*——HDOJ:1813
- Rotate Image -- LeetCode
- java中的HashCode
- [游戏记录]滚动的天空
- 以tomcat镜像为基础部署war包后再做成镜像
- 以tomcat镜像为基础部署war包后再做成镜像
- Helloworld.JaVa 第一次编程
- 进程和线程的区别
- 如何利用一个数据库中间件扩展MySQL集群——kingshard使用指南
- CSU 1003 UC Browser
- dbca识别不到已经存在的数据库
- escape()、encodeURI()、encodeURIComponent()区别