UIImageView+WebCache.m
1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//
// UIImageView+WebCache.m
// WSWebImageDemo
//
// Created by 王帅 on 16/7/26.
// Copyright © 2016年 王帅. All rights reserved.
//
#import "UIImageView+WebCache.h"
#import "CNLiveWebImageBlock.h"
@implementation UIImageView (WebCache)
- (void)ws_setImageWithUrl:(NSURL *)url
{
[self ws_setImageWithUrl:url placeholderImage:nil options:0 progress:nil completed:nil];
}
- (void)ws_setImageWithUrl:(NSURL *)url placeholderImage:(UIImage *)placeholder
{
[self ws_setImageWithUrl:url placeholderImage:placeholder options:0 progress:nil completed:nil];
}
- (void)ws_setImageWithUrl:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(CNLiveWebImageOptions)options progress:(CNLiveDownloadProgressBlock)progress completed:(CNLiveDownloadCompletedBlock)completed
{
if (placeholder) {
self.image = placeholder;
}
if (url) {
__weak __typeof(self) weakSelf = self;
[[CNLiveWebImageManager sharedManager] downloadWebImageWithURL:url
options:options
progress:progress
completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {
if (image && !error && finished) {
weakSelf.image = image;
}
}];
}
else {
dispatch_async(dispatch_get_main_queue(), ^{
NSError *error = [NSError errorWithDomain:NSURLErrorDomain code:-1 userInfo:@{NSLocalizedDescriptionKey : @"Trying to load a nil url"}];
if (completed) {
completed(nil, nil, error, NO);
}
});
}
}
@end