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
  • 相关阅读:
    2014-11-1 NOIP模拟赛2
    洛谷P1014 Cantor表
    洛谷P1011 车站
    洛谷P1013 进制位
    2014-11-1 NOIP模拟赛1
    2017-9-20 NOIP模拟赛
    洛谷P2016 战略游戏
    洛谷P3182 [HAOI2016]放棋子
    2014-10-31 NOIP模拟赛
    洛谷P1736 创意吃鱼法
  • 原文地址:https://www.cnblogs.com/xuzb/p/8872075.html
Copyright © 2011-2022 走看看