我是编程和iOS开发的新手,我尝试使用翠鸟来异步缓存和下载图像。
我有一个downloadURL,来自该链接的下载图像将用于2图像视图。用于blurryImageView和posterImageView。
blurryImageView将用作背景,如果用户的图像不是所需的垂直水平比例,如下图所示
我的问题是,如果我从那个链接下载并将用于2个图像视图,我实际上是下载两次还是仅一次?
这是我使用的简化代码:
import Kingfisher
@IBOutlet weak var posterImageView: ImageView!
@IBOutlet weak var blurryImageView: ImageView!
override func viewDidLoad() {
super.viewDidLoad()
guard let urlPoster = URL(string: imagePathString) else {return}
blurryImageView.kf.setImage(with: urlPoster)
posterImageView.kf.setImage(with: urlPoster)
}
正如您在上面的代码中看到的那样,图像将以异步方式下载,并且当posterImageView.kf.setImage(with: urlPoster)
被触发时,图像(我假设)从blurryImageView.kf.setImage(with: urlPoster)
开始尚未完成下载。所以我担心它会被下载两次效率不高。我希望它只下载一次。如果我只想下载它,我该怎么办
答案 0 :(得分:1)
不要担心它不会再次下载。如果您阅读翠鸟文档,它会提到,一旦下载了图像,它们就会被缓存。因此,下次您从该网址调用图片时,它会从缓存中获取。
这是来自翠鸟文档的行
翠鸟将从网址下载图片,并将其发送给两者 内存缓存和磁盘缓存,并在imageView中显示它。当你 稍后使用相同的代码,将从缓存中检索图像 立即显示。