我目前正在Apple的Swift中开发iOS应用程序。
我有一个包含表格单元格的表格视图,每个表格单元格显示一个计时器的当前时间(它不是一个真正的计时器,它实际上只是一个时间戳)。
应用程序本身有一个计时器,它使用单元计时器的当前状态更新表视图的可见单元格。
该应用程序提供了滑动单元格的可能性,该单元格可以显示删除按钮。
我面临的问题是删除按钮会立即消失,因为应用程序的计时器会更新单元格。
以下是更新表格视图单元格的代码:
// Update visible rows in table
func updateTable() {
// Get all visible cells
let cells = timerTable.visibleCells as! Array<TimerTableViewCell>
for cell in cells {
let indexPath = timerTable.indexPathForCell(cell)
cell.timeLabel.text = String(timerArray[indexPath!.row].getRemainingTimeAsString())
timerTable.reloadRowsAtIndexPaths([indexPath!], withRowAnimation: UITableViewRowAnimation.None)
}
}
如果有人能为我的问题找到解决方案/解决方法,我会很高兴。
提前谢谢。
答案 0 :(得分:1)
我认为更简单的解决方案是删除reloadRowsAtIndexPaths
来电,然后更新timeLabel
。你可以试试这个:
// Update visible rows in table
func updateTable() {
// Get all visible cells
let cells = timerTable.visibleCells as! Array<TimerTableViewCell>
for cell in cells {
let indexPath = timerTable.indexPathForCell(cell)
cell.timeLabel.text = String(timerArray[indexPath!.row].getRemainingTimeAsString())
}
}
因为reloadRowsAtIndexPaths
对UITableView
说:嘿,只需在这些索引路径处获取行并从头开始重建它们。忽略之前的状态。