ImageFetcher 是一个轻量级的图片加载库。它通过在后台解压图片,并提供配置选项来对图片进行圆角处理,从而优化了滚动视图的性能。
Swift 5.5 工具链,并使用 Swift Package Manager,iOS 13
将 ImageFetcher
添加到您的 Packages.swift
文件中
.package(url: "https://github.com/Mobelux/ImageFetcher.git", from: "2.0.0"),
然后,将该产品添加到任何需要访问该库的目标中
.product(name: "ImageFetcher", package: "ImageFetcher")
使用 Cache
初始化 ImageFetcher
let fetcher = ImageFetcher(try DiskCache(storageType: .temporary(nil)))
可以选择使用会话配置和最大并发图像处理操作计数进行初始化
let sessionConfiguration = URLSessionConfiguration.default
sessionConfiguration.timeoutIntervalForResource = 20
let fetcher = ImageFetcher(try DiskCache(storageType: .temporary(nil)),
sessionConfiguration: sessionConfiguration,
maxConcurrent: 5)
从 Web 获取图片
let config = ImageConfiguration(url: URL(string: "https://via.placeholder.com/150")!)
let image = try await fetcher.load(config).value
使用配置选项和强大的处理功能获取图片
let config = ImageConfiguration(url: URL(string: "https://via.placeholder.com/150")!,
size: CGSize(width: 100.0, height: 100.0),
constrain: true,
cornerRadius: 10.0,
scale: 1)
do {
let imageSource = try await fetcher.load(config)
switch imageSource {
case .cached(let image):
/// handle image coming from cache
case .downloaded(let image):
/// handle newly downloaded image
}
} catch {
/// handle error
}
ImageFetcher 在 MIT 许可下发布。