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
  • 相关阅读:
    WPF:linq
    WPF:ListView数据绑定及Style
    WPF: DatePicker
    多线程16--单例--懒汉模式和静态内部类形
    多线程15--线程本地变量ThreadLocal
    多线程14---模拟消息队列
    多线程13--多线程并发购票--低效的线程安全的车票容器
    多线程10--线程间实时通信--耗性能的轮询
    自定义video的controls(播放暂停按钮、进度条、快进快退等)
    js+css 写出 简单2048游戏
  • 原文地址:https://www.cnblogs.com/xuzb/p/8872075.html
Copyright © 2011-2022 走看看