0

我正在尝试使用Kingfisher动态设置 UIImageView 。上下文是在上一个可选的行的上一个屏幕上有一个tableview,然后在选择行时,详细信息uiview显示,其中包含更多信息,包括图像。我已经查看了 Kingfisher 文档,发现声明属于viewDidLoad我所拥有的,但我仍然无法加载图像。我还通过调试验证了传递给 Kingfisher 的 URL 是指向图片的链接。我认为这可能与在后台线程上设置的图像有关,但如果是这种情况,我不确定如何解决。我尝试将Kingfisher的实施移至viewWillAppearandviewDidAppear功能,即使经过较长的等待时间,它们仍然不显示图像

这是我删除了一些不相关功能的代码。

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()
}
}
4

2 回答 2

1

kd02 - 我找到了我的问题的答案。当您询问它是 http 还是 https 时,我记得由于安全性增强,您现在必须在 xcode 9 中启用 http。我这样做了,现在它可以工作了。

于 2018-03-08T16:20:37.463 回答
1

尝试这样的事情

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 导致了问题。

于 2018-03-08T16:20:49.053 回答