gpt4 book ai didi

ios - 每个 UITableViewCell 都有自己的任务(Webservice 调用),并且应该在其任务完成时重新加载,该任务每 30 秒调用一次

转载 作者:行者123 更新时间:2023-11-29 05:40:48 24 4
gpt4 key购买 nike

我有一个 UITableView,每个 UITableViewCell 都有自己的异步任务(Webservice 调用),单元格应在其任务完成时收到通知以更新标签,该任务每 30 秒调用一次。我不想每次都重新加载整个 UITableView。

这是我到目前为止所做的:

class ViewModel {
var name, result: String
var url: String

init () {
let timer = Timer.scheduledTimer(withTimeInterval: 30, repeats: true, block: self.startUpdating())
}

func startUpdating() {
let dispatchQueue = DispatchQueue(label: "startUpdating", qos:.utility)
dispatchQueue.async{
self.callWebservice()
// how can i notify my cell about the new changes
}
}

func callWebservice(){
//call web service and update name and result
}
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
let vm = viewModels[indexPath.row]
cell.textLabel = vm.name
cell.detailTextLabel = vm.result
return cell
}

最佳答案

您可以更新一个特定单元格,而不是重新加载整个 TableView。

yourTableView.beginUpdates()
yourTableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
yourTableView.endUpdates()

关于ios - 每个 UITableViewCell 都有自己的任务(Webservice 调用),并且应该在其任务完成时重新加载,该任务每 30 秒调用一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56578460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com