【问题标题】:UIimage not loads on tableviewUIimage 未在 tableview 上加载
【发布时间】:2017-06-10 18:18:24
【问题描述】:

我是 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

任何帮助将不胜感激

【问题讨论】:

    标签: ios swift uitableview uiimage


    【解决方案1】:

    首先,在实现 tableView 时,您需要在 viewDiLoad 中设置 tableView 的 delegate 和 datasource 像这样。

    yourTableView.datasource = self
    yourTableView.delegate = self
    

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

    现在是图片的下载部分。由于您是新手,因此您下载此图像的过程不正确。

    为什么?

    1. 您在 cellForRowAtIndexPath 中提到了 reloadData(),这是完全错误的。请查看在线答案。

    其次,您的视图可能会处于挂起状态,因为如果您的图像很大,则显示图像需要时间。因此,您可能什么都看不到,或者您的视图也不会加载。

    如何解决这个问题?

    使用异步方式下载图片。你想下载的任何东西都在viewDidAppear中调用它。

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

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

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

    here.查看此内容

    【讨论】:

    • 我不能以 1 声望做到这一点
    • 完成了,伙计,我知道这甚至不值得你给我的东西,但无论如何我非常感谢:)
    猜你喜欢
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2016-09-07
    相关资源
    最近更新 更多