ImageSource 是一个图像抽象。它旨在表示可以来自许多不同来源的图像。
一些来源示例包括
- 文件系统(
LocalImageSource
) - 网络(
RemoteImageSource
) - 用户的照片库(
PHAssetImageSource
)
它允许您使用统一的 API 以简单、高效的方式检索实际的位图,并支持检索取消。它还被设计为平台无关,因此您可以在 iOS 和 macOS 上使用它。
安装
CocoaPods
要使用 CocoaPods 将 ImageSource 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
use_frameworks!
target '<Your Target Name>' do
pod 'ImageSource'
end
然后,运行以下命令
$ pod install
典型用例
在UI中显示
要在UIImageView
中显示ImageSource
,你应该使用与ImageSource/UIKit
pod一起提供的扩展方法
func setImage(
fromSource: ImageSource?,
size: CGSize? = nil,
placeholder: UIImage? = nil,
placeholderDeferred: Bool = false,
adjustOptions: ((_ options: inout ImageRequestOptions) -> ())? = nil,
resultHandler: ((ImageRequestResult<UIImage>) -> ())? = nil)
-> ImageRequestId?
然而,在大多数情况下,您只想使用它的最简单版本,只传递第一个参数
imageView.setImage(fromSource: imageSource)
获取图像数据
要获取图像数据,请使用ImageSource.fullResolutionImageData(completion:)
imageSource.fullResolutionImageData { data in
try? data?.write(to: fileUrl)
}
获取图像大小
要获取图像大小,请使用ImageSource.imageSize(completion:)
imageSource.imageSize { size in
// do something with size
}