IOS第三方之SDWebImage

简介:

项目中从服务器端下载图片这些几乎是必备的,使用时也很简单,只需引入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



相关文章
|
iOS开发
iOS开发中使用第三方静态字体
iOS开发中使用第三方静态字体
|
数据安全/隐私保护 Android开发 iOS开发
解决第三方邮箱APP登陆QQ、163邮箱无法验证账户名或密码的问题(IOS、MacOS、Windows、Android)
解决第三方邮箱APP登陆QQ、163邮箱无法验证账户名或密码的问题(IOS、MacOS、Windows、Android)
217 0
|
存储 缓存 调度
iOS SDWebImage 深入理解
iOS SDWebImage 深入理解
141 0
|
iOS开发
iOS 第三方dSYM定位BUG
iOS 第三方dSYM定位BUG
132 0
|
iOS开发
imazing2023许可证码第三方iOS设备管理软件
iMazing是一款iPhone备份软件,使用iMazing几乎可以备份iPhone的全部数据,不仅包括照片、视频,还包括短信、通讯录,APP数据等。
985 1
imazing2023许可证码第三方iOS设备管理软件
|
API iOS开发
iOS开发-SDWebImage的回调不addSubView不会调用
iOS开发-SDWebImage的回调不addSubView不会调用
78 0
iOS开发-SDWebImage的回调不addSubView不会调用
|
开发工具 开发者 iOS开发
iOS好用的第三方侧边栏控件——MMDrawerController(一)
iOS好用的第三方侧边栏控件——MMDrawerController
619 0
iOS好用的第三方侧边栏控件——MMDrawerController(一)
|
缓存 iOS开发
iOS第三方文件压缩框架——Godzippa
iOS第三方文件压缩框架——Godzippa
439 0
|
监控 开发者 iOS开发
iOS第三方网络诊断库——LDNetDiagnoService
iOS第三方网络诊断库——LDNetDiagnoService
577 0