我正在使用UITableView
,其中包含图像和一些标签。
文本是从一台服务器加载的,图像是从另一台服务器下载的。图像URL
取决于文本值响应,但我必须在一个单元格中显示它们。我要做的是将这些数据加载后进行合并,然后再进行显示。
什么是正确的方法?
答案 0 :(得分:2)
您可以使用DispatchGroup组合两个请求的响应:
let group = DispatchGroup()
var text: String?
var image: UIImage?
group.enter()
requestText(completion: { response in
text = // extract text from response
group.leave()
})
group.enter()
requestImage(completion: { response in
image = // extract image from response
group.leave()
})
group.notify(queue: DispatchQueue.main, execute: {
let textWithImage = (text, image)
// show data in table view
})
答案 1 :(得分:2)
您可以简单地首先显示文本数据,而不是在下载图像后立即显示,就可以通过在响应中都具有一些公共ID并将该图像映射到文本数据并重新加载该特定单元格。这样,用户将能够看到文本数据,并且在几毫秒后图像也将很好地显示出来。