ASAPImage
一个提供异步图像下载实用工具的库。
ASAPImageView
ASAPImageView 是 UIImageView 的子类。
它负责从 URL 获取图像,然后异步将其设置为 image
属性。
基本用法
import ASAPImage
let url: URL!
let asapImageView = ASAPImageView()
asapImageView.load(imageAt: url)
在请求进行过程中,对图像的任何后续修改,无论是通过新的 load(imageAt:)
调用还是直接设置 image
属性,都将导致“旧”请求的取消。
请求取消
cancel()
方法允许您取消当前进行的请求。
asapImageView.load(imageAt: url)
asapImageView.cancel()
请求完成
load(imageAt:)
接受一个可选参数,该参数是一个回调,用于在请求完成时通知您的代码。该回调参数是一个 Result
类型,它是一个具有 .success
和 .failure(Error)
情况的 enum
。
asapImageView.load(imageAt: url) { result in
switch result {
case .success:
/* your logic */
case .failure(let error):
/* your logic */
}
}
取消请求将导致返回结果为 .failure(Error)
。
ASAPImageLoader
对于单纯的图片下载,可以使用 ASAPImageLoader 单例。
与 ASAPImageView 类似,它提供了一个 load(imageAt:completion:)
方法。这次,完成处理程序是必需的,其参数类型为 Result<Image>
。
ASAPImageLoader.shared.load(imageAt: url) { result in
switch result {
case .success(let image):
/* your logic */
case .failure(let error):
/* your logic */
}
}
请求取消
如果您想取消一个请求,可以使用 load(imageAt:completion:)
方法返回的 CancellationToken
。
let token = ASAPImageLoader.shared.load(imageAt: url) { /* your logic */ }
token.cancel()
CocoaPods 安装
CocoaPods 是一个 Objective-C 的依赖管理器,它可以自动化和简化在项目中使用第三方库的过程。有关更多信息,请参阅 入门指南 部分。
Podfile
pod 'ASAPImage'
如果您正在使用 Swift,请确保添加 use_frameworks!
use_frameworks!