我有一个tableView,其中包含各种不同的单元格,其中textLabel为每1秒增加一个数字。我没有每隔0.1秒重新加载tableView
或可见单元格,而是反映出更改文本会更有效,但是当我尝试这样做时,应用程序会因问题标题中给出的错误而崩溃。这是我的代码:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! OwnedBusinessCell
cell.textLabel?.text = ""
return cell
}
调用我的函数的计时器:
func scheduledTimerWithTimeInterval(){
reloadTimer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(self.reloadTV), userInfo: nil, repeats: true)
}
我的“尝试”更改文字的功能:
@objc func reloadTV() {
for myIP in (tableView.indexPathsForVisibleRows)! {
let cell = tableView(tableView, cellForRowAt: myIP)
cell.textLabel?.text = increasingVariable
}
}
完成错误:
由于未捕获的异常而终止应用 'NSInternalInconsistencyException',原因:'试图出队 多个单元格用于相同的索引路径,这是不允许的。如果你 真的需要比表视图请求更多的单元格出列, 使用-dequeueReusableCellWithIdentifier:方法(没有索引 路径)。单元标识符:单元格,索引路径:{length = 2,path = 0 - 0}'
感谢您的帮助!
答案 0 :(得分:1)
@ViewChild('myCanvas') canvasRef: ElementRef;
constructor()
是一个表视图数据源方法,并不打算直接调用, 这是你在
做的 this.ctx = this.canvasRef.nativeElement.getContext('2d');
this.chart = new Chart(this.ctx, {....})
如果你想要一个特定的单元格,那么问表格视图,而不是 数据来源:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
或更简单:
let cell = tableView(tableView, cellForRowAt: myIP)