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

时间:2019-05-30 07:39:03

标签: ios swift uitableview

我想在表格视图中逐一更改进度栏。但是当我在代码中使用不可见单元格时,它将产生nil。

我在代码中使用了module.exports = function(io){ io.on('connection', function(socket){ *your codes here* }); } ,请解决我的问题

1 个答案:

答案 0 :(得分:0)

UITableViewCell是可重用的,您无法更新未显示(可见),只是不存在或正在被其他单元重复使用的单元格的UI。

Reusable (可重复使用)意味着该单元格的视图(UITableViewCell)将用于可能刚进入tableView范围的任何其他单元格,这种情况发生在删除行或滚动并单元格超出tableView范围等...

所以,这不是问题,而是设计使然。

顺便说一句,您使用的是正确的方法tableView.cellForRow(at: IndexPath),它只会在显示一个单元格时返回一个单元格。

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

struct CellData {
    var progress: Float
}

var dataSource: [CellData]

现在,当您需要更新单元格的进度时,只需像这样更新dataSource

dataSource[index].progress = value

然后您可以调用UITableView.realoadData()刷新所有可见单元格的UI,或者只能更新特定的index,如下所示:

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