即使表视图单元格更新,如何在表格视图中保持表格视图单元格的编辑模式?

时间:2016-05-07 17:07:44

标签: ios swift uitableview timer swift2

我目前正在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)
    }
}

如果有人能为我的问题找到解决方案/解决方法,我会很高兴。

提前谢谢。

1 个答案:

答案 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())
    }
}

因为reloadRowsAtIndexPathsUITableView说:嘿,只需在这些索引路径处获取行并从头开始重建它们。忽略之前的状态。