UIImageView+WebCache.m 1.91 KB
//
//  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