我想在表格视图中逐一更改进度栏。但是当我在代码中使用不可见单元格时,它将产生nil。
我在代码中使用了module.exports = function(io){
io.on('connection', function(socket){
*your codes here*
});
}
,请解决我的问题
答案 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)
}