YBIBWebImageMediator.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // YBIBWebImageMediator.h
  3. // YBImageBrowserDemo
  4. //
  5. // Created by 波儿菜 on 2019/8/27.
  6. // Copyright © 2019 杨波. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. typedef NSURLRequest * _Nullable (^YBIBWebImageRequestModifierBlock)(NSURLRequest *request);
  11. typedef void(^YBIBWebImageProgressBlock)(NSInteger receivedSize, NSInteger expectedSize);
  12. typedef void(^YBIBWebImageSuccessBlock)(NSData * _Nullable imageData, BOOL finished);
  13. typedef void(^YBIBWebImageFailedBlock)(NSError * _Nullable error, BOOL finished);
  14. typedef void(^YBIBWebImageCacheQueryCompletedBlock)(UIImage * _Nullable image, NSData * _Nullable imageData);
  15. @protocol YBIBWebImageMediator <NSObject>
  16. @required
  17. /**
  18. 下载图片
  19. @param URL 图片地址
  20. @param requestModifier 修改默认 NSURLRequest 的闭包
  21. @param progress 进度回调
  22. @param success 成功回调
  23. @param failed 失败回调
  24. @return 下载 token (可为空)
  25. */
  26. - (id)yb_downloadImageWithURL:(NSURL *)URL requestModifier:(nullable YBIBWebImageRequestModifierBlock)requestModifier progress:(YBIBWebImageProgressBlock)progress success:(YBIBWebImageSuccessBlock)success failed:(YBIBWebImageFailedBlock)failed;
  27. /**
  28. 缓存图片数据到磁盘
  29. @param data 图片数据
  30. @param key 缓存标识
  31. */
  32. - (void)yb_storeToDiskWithImageData:(nullable NSData *)data forKey:(NSURL *)key;
  33. /**
  34. 读取图片数据
  35. @param key 缓存标识
  36. @param completed 读取回调
  37. */
  38. - (void)yb_queryCacheOperationForKey:(NSURL *)key completed:(YBIBWebImageCacheQueryCompletedBlock)completed;
  39. @optional
  40. /**
  41. 取消下载
  42. @param token 下载 token
  43. */
  44. - (void)yb_cancelTaskWithDownloadToken:(id)token;
  45. @end
  46. NS_ASSUME_NONNULL_END