UIimage不会加载在tableview上

时间:2017-06-10 18:18:24

标签: ios swift uitableview uiimage

我是swift的新手,目前正在制作个人应用,

我正在尝试加载此图片 my image url

之后我在我的表视图上使用此代码来加载图像

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let url = posts[indexPath.row].message


        let url1 = URL(string: url!)
            let data = try? Data(contentsOf: url1!) //make sure your image in this url does exist, otherwise unwrap in a if let check / try-catch
            MoviePoster.image = UIImage(data: data!)




            self.tableView.reloadData()
return cell

}

但不是图像,屏幕看起来像这样 screen image

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

首先,在实施tableView时,您需要在 viewDiLoad 中设置tableView的委托和数据源 像这样。

yourTableView.datasource = self
yourTableView.delegate = self

在此之前你需要像这样扩展你的tableView,我想你已经这样做了。

现在来到图像的下载部分。在您是新手时,下载此图像的过程不正确。

<强>为什么吗

  1. 你在cellForRowAtIndexPath中提到了reloadData(),这是完全错误的。请查看在线答案。
  2. 其次你的视图可能处于挂起状态,因为如果你的图像很大,那么显示图像需要时间。所以可能是这样,你看不到任何东西,或者你的视图也不会加载。

    如何解决此问题?

    使用异步方式下载图像。您要下载的任何内容都在 viewDidAppear 中调用它。

    是否有任何库作为快捷方式?

    是。使用SDWebImage。这是一个很棒的图书馆。你不必考虑所有的事情。它已经完成了这项工作。你所要做的就是打电话。就像这样。

    imageView.sd_setImage(with: URL(string: "yourdomainpathforImage"), placeholderImage: UIImage(named: "placeholder.png"))
    

    here.

    查看此内容