zoukankan      html  css  js  c++  java
  • 对UIImageView+WebCache的封装

    UIImageView+SDWebImage.h

    #import <UIKit/UIKit.h>
    
    typedef void(^DownloadImageSuccessBlock)(UIImage *image);
    typedef void(^DownloadImageFailedBlock)(NSError *error);
    typedef void(^DownloadImageProgressBlock)(CGFloat progress);
    
    @interface UIImageView (SDWebImage)
    
    /**
     异步加载图片
    
     @param url 图片地址
     @param imageName 占位图片名
     */
    - (void)downloadImage:(NSString *)url placeholder:(NSString *)imageName;
    
    /**
     异步加载图片,可以监听下载进度,成功或失败
    
     @param url 图片地址
     @param imageName 占位图片名
     @param success 下载成功
     @param failed 下载失败
     @param progress 下载进度
     */
    - (void)downloadImage:(NSString *)url
              placeholder:(NSString *)imageName
                  success:(DownloadImageSuccessBlock)success
                   failed:(DownloadImageFailedBlock)failed
                 progress:(DownloadImageProgressBlock)progress;
    
    @end

    UIImageView+SDWebImage.m

    #import "UIImageView+SDWebImage.h"
    
    #import "UIImageView+WebCache.h"
    
    @implementation UIImageView (SDWebImage)
    
    - (void)downloadImage:(NSString *)url placeholder:(NSString *)imageName {
        
        [self sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:[UIImage imageNamed:imageName] options:SDWebImageRetryFailed | SDWebImageLowPriority];
    }
    
    - (void)downloadImage:(NSString *)url placeholder:(NSString *)imageName success:(DownloadImageSuccessBlock)success failed:(DownloadImageFailedBlock)failed progress:(DownloadImageProgressBlock)progress {
        
        [self sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:[UIImage imageNamed:imageName] options:SDWebImageRetryFailed | SDWebImageLowPriority progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {
            
            progress(receivedSize * 1.0 / expectedSize);
            
        } completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
            
            if (error) {
                
                failed(error);
            } else {
                
                self.image = image;
                success(image);
            }
        }];
        
    }
    
    @end
  • 相关阅读:
    UVa 1252 20个问题
    HDU 2196 Computer
    HDU 1520 Anniversary party
    HDU 2066 一个人的旅行
    UVa 10048 噪音恐惧症(Floyd)
    UVa 247 电话圈(Floyd传递闭包)
    HDU 2544 最短路(Dijkstra)
    HDU 1548 A strange lift (Dijkstra)
    UVa 1151 买还是建
    UVa 1395 苗条的生成树(Kruskal+并查集)
  • 原文地址:https://www.cnblogs.com/xuzb/p/8872075.html
Copyright © 2011-2022 走看看