Ios 当屏幕出现时,加载数据需要几秒钟
我已经创建了一个产品详细信息屏幕,当加载时,数据需要几秒钟才能显示出来。我在寻找一个更优雅的解决方案 在加载数据之前,我可以在几秒钟内看到此视图: 当加载的数据看起来像: 上一个屏幕上有推送数据的代码:Ios 当屏幕出现时,加载数据需要几秒钟,ios,swift,Ios,Swift,我已经创建了一个产品详细信息屏幕,当加载时,数据需要几秒钟才能显示出来。我在寻找一个更优雅的解决方案 在加载数据之前,我可以在几秒钟内看到此视图: 当加载的数据看起来像: 上一个屏幕上有推送数据的代码: override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { productInt = indexPath.row let prod
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
productInt = indexPath.row
let product = msproducts[productInt]
nameToSend = product.name ?? ""
descToSend = product.short_description ?? ""
self.performSegue(withIdentifier: "infoViewAlu", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "infoViewAlu" {
let controller = segue.destination as! ProduktInfoViewController
ProgressHUD.show("Proszę czekać")
controller.productName = nameToSend
controller.productDesc = descToSend
}
}
下面是在表中显示此数据的代码:
@IBOutlet weak var infoProductName: UILabel!
@IBOutlet weak var productDescription: UITextView!
var productName: String = ""
var productDesc: String = ""
override func viewDidLoad() {
super.viewDidLoad()
changeData(name: productName, desc: productDesc)
title = productName
}
func changeData(name: String, desc: String){
infoProductName.text = name
productDescription.text = desc
ProgressHUD.dismiss()
}
有人能告诉我问题出在哪里,为什么屏幕分两步加载吗?问题可能是您在继续之前正在调用
progressHUD.show
。尝试:
@IBOutlet weak var infoProductName: UILabel!
@IBOutlet weak var productDescription: UITextView!
var productName: String = ""
var productDesc: String = ""
override func viewDidLoad() {
super.viewDidLoad()
// remove this from **prepare for segue**
ProgressHUD.show("Proszę czekać")
//
changeData(name: productName, desc: productDesc)
title = productName
}
func changeData(name: String, desc: String){
infoProductName.text = name
productDescription.text = desc
ProgressHUD.dismiss()
}
请从详细信息屏幕中删除所有UI元素,并再次使用新元素重新设计(不要复制旧元素) 由于特定用户界面的iOS框架内存泄漏,我已经多次遇到此类问题
如果不想从详细信息屏幕中删除所有元素,请逐个删除元素并进行检查。(您必须找到特定的UI元素)。不应该。您不必对当前代码使用
ProgressHUD
。它应该是“快速代码执行”。你正在主线程上做其他事情。嗨,我做了你写的,但它仍然不能很好地工作