我正在使用 kingfisher 库,但我的问题是我不能将它用于存储在资产中的图像 - 所有 kingfisher 方法都需要 url,那么我如何将它用于资产?
问问题
2893 次
1 回答
6
那些在评论中说我们不需要为他们通过 kingfisher 从 Assets 加载本地图像的人,有一个场景,例如当我们在 UITableView 中加载图像并且在 if 条件下我们从远程 URL 和否则,我们从本地资产加载。在这种情况下,如果我们直接用方法分配图像UIImage(...)
,TableView 图像将开始表现异常。所以我们需要通知 Kingfisher 我们已经直接更改了图像并且在从远程 URL 加载时不要更新它。对于这种场景,可以使用下面的代码
import Kingfisher
//////// In your cellForRowAt method
if (loadThroughRemoteURL) {
cell.imageView.kf.setImage(with: URL(string: "YOUR_REMOTE_IMAGE_URL"))
}
else { // loading through local assets
let resource: Resource? = nil
cell.imageView.kf.setImage(with: resource) // inform kingfisher that you are assigning this image by your own
cell.imageView.image = UIImage(named: "your_image_in_assets")
}
于 2020-04-28T10:02:16.310 回答