swift - 在 UITable 中加载数据时出现问题 - 仅在第二次单击后刷新数据
问题描述
我有一个问题。我想当我按下刷新按钮来刷新我的 UITable 中包含的数据时。所以我有一个 alamofire 函数,它对我的服务器进行 GET 操作,数据用于填充表。
问题是 numberOfRowsInSection 和 cellForRowAt 在调用 API 结束之前被调用。
我可能正在考虑为func refreshData添加一个布尔值,但我没有成功我也尝试过
let dispatchGroup = DispatchGroup()
dispatchGroup.enter()
dispatchGroup.leave()
但没有成功
@IBAction func btnResetPressed(_ sender : UIButton?) {
hud.textLabel.text = "Loading"
hud.show(in: self.view)
self.refreshData()
hud.dismiss()
}
func refreshData() {
AF().GETBon("\(appUrl.urlApiBonUnbilled)", success: { (response) in
self.arrBonUnbilled.removeAll()
var responseObjectBonUnbilled: ResponseObjectBonUnbilled?
responseObjectBonUnbilled = try? JSONDecoder().decode(ResponseObjectBonUnbilled.self, from: response)
self.arrBonUnbilled.append(contentsOf: responseObjectBonUnbilled!.data)
if let data = try? PropertyListEncoder().encode(self.arrBonUnbilled) {
UserDefaults.standard.setValue(data, forKey: "ListingBon")
print (try! PropertyListDecoder().decode([BonUnbilled].self, from: UserDefaults.standard.data(forKey: "ListingBon")!))
}
}) { (Error) in
print ("KO: \(Error)")
}
}
在此先感谢您的帮助。如果您对改进代码也有任何建议,欢迎提出。
解决方案
感谢 Vadian 快速而正确的答案,解决了这个问题。我还必须补充:
let Height : CGFloat = self.tblData.contentSize.height
self.tblData.frame.size.height = Height
用于调整表格大小
推荐阅读
- python - Discord.py:消息未发送到频道
- java - 如何从 HTTP 请求返回模拟响应对象?
- julia - 如何在 julia lang 中导入大量图像
- javascript - FileSystem.writeAsStringAsync 崩溃
- c# - 如何将 Excel (.xlsx) 文件导入并显示到 Blazor WASM 客户端(不上传到服务器)
- c++ - Arduino,了解无效转换警告字符*
- python - 检查某人是否有防止反应的作用
- c - 在 C 中实现泰勒级数的函数返回参数的值
- python - 如何更改 PyTorch 中的默认图像形状?
- c# - 公共交通消费者依赖注入