【问题标题】:How can i take values from array with links?如何从带有链接的数组中获取值?
【发布时间】:2017-06-18 17:20:43
【问题描述】:

我是 swift 新手。谁能帮忙?我有一个包含 3 个链接的数组,我如何从这个数组中获取一个链接并在 UIImageView 中显示,然后是第二个链接,然后是第三个链接?我用一个链接制作,但不明白如何用数组制作。谢谢。

class ViewController: UIViewController {

    @IBOutlet weak var imgView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        var image = UIImage()
        var imageData: Data?
        let links = ["http://s.ill.in.ua/i/gallery/950x0/2694/146192.jpg","http://s.ill.in.ua/i/gallery/950x0/2694/146190.jpg","http://s.ill.in.ua/i/gallery/950x0/2694/146202.jpg"]
        let url = URL(string: links[0])
        do {
            imageData = try Data(contentsOf: url!)
        }
        catch {
            print("error")
        }
        if let value = imageData {
            image = UIImage(data:value)!
            imgView.image = image
        }
    }

}

【问题讨论】:

  • 如果您在图像视图中一个接一个地显示所有 3 个链接,您将只看到最后一个,计算机太快了。顺便说一句:从不使用像 Data(contentsOf 这样的同步方法从远程 URL 加载数据,并且从不使用在 do-catch 表达式之后的 do 块中可能失败的数据。将所有 good 代码放在 do 范围内并移除可选绑定。
  • 我明白,但我可以使用 DispatchQueue 来延迟
  • 使用此链接轻松从服务器加载图像:stackoverflow.com/a/37019507/3400991

标签: arrays swift string


【解决方案1】:

您可以像这样轻松地遍历数组:

for link in links {
    // This will iterate through array, so you can do something specific on each step
    let url = URL(string: link)
    do {
        imageData = try Data(contentsOf: url!)
    }
    catch {
        print("error")
    }
    if let value = imageData {
        image = UIImage(data:value)!
        imgView.image = image
        print("Updated imageView with \(link)!")
    }
}

【讨论】:

    【解决方案2】:

    就这样用吧:

     let links = ["http://s.ill.in.ua/i/gallery/950x0/2694/146192.jpg","http://s.ill.in.ua/i/gallery/950x0/2694/146190.jpg","http://s.ill.in.ua/i/gallery/950x0/2694/146202.jpg"]
    

    使用三个不同的 ImageView(一段时间),或者您可以使用 tableview 显示图像并使用以下链接:https://stackoverflow.com/a/37019507/3400991

    for linkValue in links {
       yourimageview.imageFromServerURL(urlString: linkValue as! String)
    }
    

    这是您可以将图像显示到图像视图中的一种方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 2013-10-06
      • 2022-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      相关资源
      最近更新 更多