Coder Social home page Coder Social logo

g763007297 / gqimagedownloader Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 5.53 MB

网络图片异步多线程加载工具,可设置缓存方式,支持主流图片格式,以及webp图片,支持自定义网络请求类,支持根据系统级别自动区分使用NSURLSession与NSURLConnection请求。

License: GNU General Public License v2.0

Objective-C 45.74% C 53.73% Ruby 0.53%
imageloader image-processing urlconnection urlsession cache-control cachemanager imagedownloader imagedownload

gqimagedownloader's Introduction

License MIT    support 

GQImageDownloader

网络图片异步多线程加载工具,可设置缓存方式,支持主流图片格式,以及webp图片,支持自定义网络请求类,支持根据系统级别自动区分使用NSURLSession与NSURLConnection请求。

使用CocoaPods导入

1.在 Podfile 中添加不带webp格式支持的图片加载器则添加 pod 'GQImageDownloader',添加支持webp格式支持的则添加 pod 'GQImageDownloader/WebP'。 2.执行 pod install 或 pod update。 3.导入 GQImageDownloader.h。

使用方式

/**
只带url的请求方法

param url 图片地址
param progress 进度回调
param complete 完成回调
*/
- (void)loadImage:(NSURL*)url
progress:(GQImageDownloaderProgressBlock)progress
complete:(GQImageDownloaderCompleteBlock)complete;

/**
带默认图片的请求方法

param url 图片地址
param placeHolderImage 默认图片
param progress 进度回调
param complete 完成回调
*/
- (void)loadImage:(NSURL*)url
placeHolder:(UIImage *)placeHolderImage
progress:(GQImageDownloaderProgressBlock)progress
complete:(GQImageDownloaderCompleteBlock)complete;

/**
带自定义请求类的请求方法

param url 图片地址
param className 请求类名
param placeHolderImage 默认图片
param progress 进度回调
param complete 完成回调
*/
- (void)loadImage:(NSURL*)url
requestClassName:(NSString *)className
placeHolder:(UIImage *)placeHolderImage
progress:(GQImageDownloaderProgressBlock)progress
complete:(GQImageDownloaderCompleteBlock)complete;

/**
带缓存类型的请求方法

param url 图片地址
param className 请求类名
param cacheType 缓存类型
param placeHolderImage 默认图片
param progress 进度回调
param complete 完成回调
*/
- (void)loadImage:(NSURL*)url
requestClassName:(NSString *)className
cacheType:(GQImageDownloaderCacheType)cacheType
placeHolder:(UIImage *)placeHolderImage
progress:(GQImageDownloaderProgressBlock)progress
complete:(GQImageDownloaderCompleteBlock)complete;

/**
取消当前请求
*/
- (void)cancelCurrentImageRequest;

/**
取消所有的图片请求
*/
- (void)cancelAllImageRequest;

属性介绍

(1)缓存策略:

typedef enum : NSUInteger {
    GQImageDownloaderCacheTypeNone,//无缓存
    GQImageDownloaderCacheTypeOnlyMemory,//仅缓存在内存中
    GQImageDownloaderCacheTypeDisk//缓存至硬盘中
} GQImageDownloaderCacheType;

(2)设置请求类: 请求类必须继承于GQImageDownloaderBaseURLRequest,继承请求基类时可覆盖以下方法对自定义请求类进行参数设置

/**
 进行参数相关的配置,该方法旨在请求参数自定义
*/
- (void)configureRequestData;

/**
 User-Agent

@return User-Agent
*/
- (NSString *)userAgentString;

/**
Cookie

@return Cookie
*/
- (NSString *)storageCookies;

/**
请求接收类型

@return 接收类型
*/
- (NSString *)acceptType;

Level history

(1) 1.0.0

GitHub添加代码。

(2) 1.0.1

修复抽取时session遗漏导致无法下载图片

(3) 1.0.2

代码规范完善

(4) 1.0.3

缓存判断更新

(5) 1.0.4

更新缓存策略

(6) 1.0.5

修改pod默认设置,避免使用webp时还需设置xcode中build setting默认参数

(7) 1.0.6

消除xcode警告并解决可能造成循环引用的block问题

(8) 1.0.7

wait a moment

Support

欢迎指出bug或者需要改善的地方,欢迎提出issues、加Q群交流iOS经验:578841619 , 我会及时的做出回应,觉得好用的话不妨给个star吧,你的每个star是我持续维护的强大动力。

gqimagedownloader's People

Contributors

g763007297 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.