【发布时间】:2019-01-22 11:04:22
【问题描述】:
我有一个表格视图,其中包含从 Firebase Real-time(用于文本)和 Firebase Storage(用于图像)填充的一堆单元格。我整理的代码会等待所有文本和图像下载完毕,然后再呈现表格。
我希望文本首先加载到单元格中,然后是相关图像。
代码设置如下:
- 主视图控制器
- 存储标签和图像视图的 Tableviewcell 文件。
- 模型文件。
给我问题的主要功能如下:
func LoadDataFromImageTest() {
databaseReference = Database.database().reference()
let refPVV = Database.database().reference(withPath: "PVV").queryOrdered(byChild: "Status").queryEqual(toValue: "Active")
refPVV.observeSingleEvent(of: .value, with: { [weak self] (snapshot) in
//if the reference have some values
if snapshot.childrenCount > 0 {
//clearing the list
self?.FBImageList.removeAll()
//iterating through all the values
for PVV in snapshot.children.allObjects as! [DataSnapshot] {
//getting values
let PVVObject = PVV.value as? [String: AnyObject]
let PVVImageName = PVVObject?["ImageName"] as! String?
let PVVName = PVVObject?["Name"] as! String?
let imageURL = Storage.storage().reference().child(PVVImageName!)
imageURL.downloadURL(completion: { (url, error) in
if error != nil {
print(error?.localizedDescription as Any)
return
}
URLSession.shared.dataTask(with: url!, completionHandler: { (data, response, error) in
if error != nil {
print(error as Any)
return
}
guard let imageData = UIImage(data: data!) else { return }
DispatchQueue.main.async {
let PVV = FBImageModel(ImageName: imageData as UIImage?, Name: PVVName as String?)
self!.FBImageList.insert(PVV, at: 0)
}
DispatchQueue.main.async {
//reloading the tableview
self?.FBImageTableView.reloadData()
}
}).resume()
})
}
}
}
)}
必须如何更改才能在为所有单元格填充文本标签后单独加载图像?
提前感谢您的帮助。
【问题讨论】:
-
尝试使用SDWebImage
-
在这种情况下我该怎么做?
标签: swift image firebase uitableview