Ios 我们如何使用uitableview中的不可见单元格?

Ios 我们如何使用uitableview中的不可见单元格?,ios,swift,uitableview,Ios,Swift,Uitableview,我想在tableview中逐个更改进度条。但当我在代码中使用不可见单元格时,它会生成零 我在代码中使用tableview.cellforRowAtIndexPath,请解决我的问题UITableViewCell是可重用的,您无法更新不可见显示的单元格的UI,它们只是不存在或正在被其他单元格重用 可重用意味着单元格的view UITableViewCell将用于可能刚进入tableView边界的任何其他单元格,当您删除一行时,或者当您滚动到别处并且单元格超出tableView边界时,就会发生这种情

我想在tableview中逐个更改进度条。但当我在代码中使用不可见单元格时,它会生成零

我在代码中使用tableview.cellforRowAtIndexPath,请解决我的问题

UITableViewCell是可重用的,您无法更新不可见显示的单元格的UI,它们只是不存在或正在被其他单元格重用

可重用意味着单元格的view UITableViewCell将用于可能刚进入tableView边界的任何其他单元格,当您删除一行时,或者当您滚动到别处并且单元格超出tableView边界时,就会发生这种情况

因此,这不是一个问题,而是一个设计问题

顺便说一句,您使用的是正确的方法tableView.cellForRowat:IndexPath,它将仅在显示单元格时返回一个单元格

您应该更新数据源并保留进度值,下次显示单元格时,它将显示数据源中的值,如下所示:

struct CellData {
    var progress: Float
}

var dataSource: [CellData]
if let cell = self.tableView.cellForRow(at: IndexPath(row: index, section: 0)) as? CustomCell {
    cell.progressView.setProgress(value, animated: true)
}
现在,当您需要更新单元格的进度时,只需更新数据源,如下所示

然后调用UITableView.realoadData刷新所有可见单元格的UI,或者只更新该特定索引,如下所示:

struct CellData {
    var progress: Float
}

var dataSource: [CellData]
if let cell = self.tableView.cellForRow(at: IndexPath(row: index, section: 0)) as? CustomCell {
    cell.progressView.setProgress(value, animated: true)
}

请添加您的代码,以便它了解您的问题