SDWebImage的简单使用

5 篇文章 0 订阅
1 篇文章 0 订阅

根据这个文章写出来的简单应用,http://www.cocoachina.com/ios/20141212/10622.html

SDWebImage是图片下载的第三方类库,能非常方面的加载图片,具体原理是:加载的图片会以data的格式保存在缓存里,如果再加载图片的时候会首先先从缓冲中寻找有没有该图片,如果有就用缓存的,如果没有就加载保存在缓存里.

图片保存的文件夹为:
这里写图片描述
首先把头文件引入,并声明一个图片的宏

#import "UIImageView+WebCache.h"
#define kImageUrl @"http://img3.douban.com/view/event_poster/median/public/10f53a2ad8b38c5.jpg"

1.简单的图片缓存

- (void)addUIImageView1
{
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 200, 300)];
    NSURL *url = [NSURL URLWithString:kImageUrl];
    // 图片缓存
    [imageView sd_setImageWithURL:url];
    [self.view addSubview:imageView];   
}

2.先使用占位图,加载之后再显示

- (void)addUIImageView2
{
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 200, 300)];
    NSURL *url = [NSURL URLWithString:kImageUrl];
    // 先使用默认图片当加载完之后才显示
    [imageView sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"placeholder"]];
    [self.view addSubview:imageView];


}

3.用block和占位符,可以在加载后进行一些操作

- (void)addUIImageView3
{
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 200, 300)];
    NSURL *url = [NSURL URLWithString:kImageUrl];
    // 用block和默认图片在完成后做一些事情
    [imageView sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"placeholder"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
        NSLog(@"使用了block和占位符号");
    }];

     [self.view addSubview:imageView];

}

4.选择加载方式,option表示选择方式

- (void)addUIImageView4
{
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 200, 300)];
    NSURL *url = [NSURL URLWithString:kImageUrl];
    // option选择方式,SDWebImageRetryFailed表示失败后重试
    [imageView sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"placeholder"] options:SDWebImageRetryFailed];

    [self.view addSubview:imageView];   
}

最后如果要清除缓存可以使用下面的方法,能把文件夹的图片删除

 [[SDImageCache sharedImageCache] clearDisk];

图片加载也可以用在tableView的cell上面,根据需要选择不同的上述用法,用SDWebImage能非常方面的加载图片.具体的内部实现可以参考我链接的那篇文章.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值