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
  • 相关阅读:
    Android 创建Library Project(库项目)与引用操作
    Android插件化(二):使用DexClassLoader动态载入assets中的apk
    洛谷P3388 【模板】割点(割顶)(tarjan求割点)
    BZOJ 1179: [Apio2009]Atm(tarjan+SPFA)
    洛谷P1067 多项式输出(模拟)
    洛谷P2118 比例简化(暴力)
    BZOJ 3714: [PA2014]Kuglarz(最小生成树)
    BZOJ 4289: PA2012 Tax(最短路)
    BZOJ 4152: [AMPPZ2014]The Captain(最短路)
    洛谷P2939 [USACO09FEB]改造路Revamping Trails(最短路)
  • 原文地址:https://www.cnblogs.com/xuzb/p/8872075.html
Copyright © 2011-2022 走看看