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
  • 相关阅读:
    ref out param 区别
    SQL语句执行顺序以及oracle基本查询优化
    Ext.LoadMask遮罩的效果几种实现方式
    用ajax技术实现无闪烁定时刷新页面
    ExtJs 实现动态列,动态多表头 在这里添加日志标题
    Ajax中文乱码问题解决方法(服务器端用servlet)
    订购国际机票的常用指令
    ETERM航班销售控制指令
    线程wait()和sleep()的区别
    JSt中对象的prototype属性
  • 原文地址:https://www.cnblogs.com/xuzb/p/8872075.html
Copyright © 2011-2022 走看看