【发布时间】: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