项目中从服务器端下载图片这些几乎是必备的,使用时也很简单,只需引入SDWebImage文件
//
// ViewController.m
// sdWebImageDemo
//
// Created by City--Online on 15/6/15.
// Copyright (c) 2015年 City--Online. All rights reserved.
//
#import "ViewController.h"
#import "UIImageView+WebCache.h"
@interface ViewController ()
@property(nonatomic,strong) UIImageView *imgView1;
@property(nonatomic,strong) UIImageView *imgView2;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *claerBtn=[UIButton buttonWithType:UIButtonTypeSystem];
[claerBtn setTitle:@"清除缓存" forState:UIControlStateNormal];
claerBtn.frame=CGRectMake(20, 10, 100, 100);
[claerBtn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
claerBtn.tag=10001;
[self.view addSubview:claerBtn];
UIButton *loadBtn=[UIButton buttonWithType:UIButtonTypeSystem];
[loadBtn setTitle:@"加载" forState:UIControlStateNormal];
loadBtn.frame=CGRectMake(130, 10, 100, 100);
[loadBtn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
loadBtn.tag=10002;
[self.view addSubview:loadBtn];
_imgView1=[[UIImageView alloc]initWithFrame:CGRectMake(20, 120, 250, 250)];
_imgView1.backgroundColor=[UIColor grayColor];
[self.view addSubview:_imgView1];
_imgView2=[[UIImageView alloc]initWithFrame:CGRectMake(20, 380, 250, 250)];
_imgView2.backgroundColor=[UIColor grayColor];
[self.view addSubview:_imgView2];
}
-(void)btnClick:(id)sender
{
UIButton *btn=(UIButton *)sender;
if (btn.tag==10001) {
[[SDImageCache sharedImageCache] clearDisk];
[[SDImageCache sharedImageCache] clearMemory];
}
else if (btn.tag==10002)
{
NSURL *imgPath1=[NSURL URLWithString:@"http://s15.sinaimg.cn/middle/9914f9fdhbc6170891ebe&690"];
NSURL *imgPath2=[NSURL URLWithString:@"http://s14.sinaimg.cn/middle/9914f9fdhbc611c219f3d&690"];
//基本使用方法
// [_imgView1 sd_setImageWithURL:imgPath1 ];
//
// //block
// [_imgView2 sd_setImageWithURL:imgPath2 completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
// NSLog(@"这里可以在图片加载完成之后做些事情");
// }];
//预先设定一张图片
// [_imgView1 sd_setImageWithURL:imgPath1 placeholderImage:[UIImage imageNamed:@"default.jpg"]];
//
// //block 预先设定一张图片
// [_imgView2 sd_setImageWithURL:imgPath2 placeholderImage:[UIImage imageNamed:@"default.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
// NSLog(@"这里可以在图片加载完成之后做些事情");
// }];
//
[_imgView1 sd_setImageWithURL:imgPath1 placeholderImage:[UIImage imageNamed:@"default.jpg"] options:SDWebImageCacheMemoryOnly];
SDWebImageManager *manager=[SDWebImageManager sharedManager];
[manager downloadImageWithURL:imgPath2 options:SDWebImageRetryFailed progress:^(NSInteger receivedSize, NSInteger expectedSize) {
NSLog(@"%f",receivedSize/(float)expectedSize);
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
NSLog(@"下载完成");
_imgView2.image=image;
}];
//
// /*
// //失败后重试
// SDWebImageRetryFailed = 1 << 0,
//
// //UI交互期间开始下载,导致延迟下载比如UIScrollView减速。
// SDWebImageLowPriority = 1 << 1,
//
// //只进行内存缓存
// SDWebImageCacheMemoryOnly = 1 << 2,
//
// //这个标志可以渐进式下载,显示的图像是逐步在下载
// SDWebImageProgressiveDownload = 1 << 3,
//
// //刷新缓存
// SDWebImageRefreshCached = 1 << 4,
//
// //后台下载
// SDWebImageContinueInBackground = 1 << 5,
//
// //NSMutableURLRequest.HTTPShouldHandleCookies = YES;
//
// SDWebImageHandleCookies = 1 << 6,
//
// //允许使用无效的SSL证书
// //SDWebImageAllowInvalidSSLCertificates = 1 << 7,
//
// //优先下载
// SDWebImageHighPriority = 1 << 8,
//
// //延迟占位符
// SDWebImageDelayPlaceholder = 1 << 9,
//
// //改变动画形象
// SDWebImageTransformAnimatedImage = 1 << 10,
// */
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end