我正在尝试使用Kingfisher动态设置UIImageView。上下文是在前一个屏幕上有不同可选行的TableView,然后当选择行时,详细信息UIView显示哪些信息包含更多信息,包括图像。我已经去了Kingfisher文档,发现声明属于viewDidLoad
,因为我有它,但我仍然无法加载图像。我还通过调试验证了传递给Kingfisher的URL是图片的链接。我认为这可能与在后台线程上设置的图像有关但我不确定如何解决这个问题。我已经尝试将 Kingfisher 的实现移动到viewWillAppear
和viewDidAppear
函数,即使经过了相当长的等待时间,它们仍然无法显示图像
这是我的代码,其中删除了一些不相关的功能。
import UIKit
import Kingfisher
class DetailsViewController: UIViewController {
@IBOutlet weak var thumbnail: UIImageView!
var thumbnailURL: URL?
override func viewDidLoad() {
super.viewDidLoad()
self.thumbnail.kf.setImage(with: thumbnailURL)
...................................................
// self.thumbnail.image = UIImage(named: "image1")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
答案 0 :(得分:0)
kd02 - 我找到了问题的答案。当您询问它是http还是https时,我记得您现在必须在xcode 9中启用http,因为安全性增强。我做到了,现在它有效。
答案 1 :(得分:0)
尝试这样的事情
import UIKit
import Kingfisher
class DetailsViewController: UIViewController {
@IBOutlet weak var thumbnail: UIImageView!
var thumbnailURL: URL?
override func viewDidLoad() {
super.viewDidLoad()
if let url = self.thumbnailURL {
self.thumbnail.setImage(with: url)
}
}
}
我觉得可选的URL导致问题。