第二次加载后Tableview更新单元格值

时间:2017-02-07 13:19:04

标签: swift uitableview tableviewcell reloaddata

我有两个观点。第一个视图包含文件夹名称和搜索按钮的列表。 (tableview),第二个视图用户可以搜索我的服务器中的文件并可以下载它。第二个tableview有文件名,进度条和下载按钮。

当用户在第一个视图中单击搜索按钮,然后搜索文件名并单击下载按钮,下载按钮进度开始。此过程正常,我可以看到进度值的变化。

但是当用户回到第一个视图然后打开第二个视图并开始下载过程时,我无法更改进度条值。

我可以看到我的代码工作并尝试更新tableview行,但事实并非如此。 (我可以看到我的代码调用了cellForRowAt indexPath方法)

我的代码有什么问题? 为什么我无法更新tableview行中的值?

我的更新代码:

let indexPath = IndexPath(row: 2, section: 0)
tableView.beginUpdates()
self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
tableView.endUpdates()

我首先更新模型而不是调用reload tableview行。代码:

dataArray[cellNum].progressValue = taskProgress

// Tableview cellforRowAt:

let identifier = "Cell"
let cell = tableView.dequeueReusableCell(withIdentifier: identifier, for: indexPath) as! SearchListCell

cell.circularProgress.angle = dataArray[indexPath.row].progressValue
cell.titleLabel.text = dataArray[indexPath.row].title

return cell

我还尝试用以下行更新行:

let cell = self.tableView.cellForRow(at: indexPath) as! SearchListCell!
let progressInfo = self.dataArray[indexPath.row]
cell?.circularProgress.angle = progressInfo.progressValue

1 个答案:

答案 0 :(得分:0)

您如何处理进度条值?

您可以执行包含条形值的变量,然后在cellForRowAt中,将单元格进度条值设置为该变量。如果您已经这样做了,请向我们展示更多代码。希望它有所帮助!