swift - 滑动删除不适用于计时器

标签 swift

我在我的 TableView 中实现了“滑动删除”选项,如下所示:

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
  return true
}

func tableView(_ tableView: UITableView, commit editingStyle: 
 UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
  if editingStyle == .delete {
    rows.remove(at: indexPath.row)
    runnerTableView.deleteRows(at: [indexPath], with: .fade)
    runnerTableView.reloadData()
  }
}

在我的计时器实现之前它工作正常:

timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, 
 selector:#selector(ViewController.updateTimer), userInfo: nil, repeats: true)
RunLoop.main.add(timer, forMode: RunLoopMode.commonModes)

func updateTimer () {
  var j = 0
  for _ in rows {
    if (rows[j]["Playing"] as! Bool == true ) {
      rows[j]["time"] = (rows[j]["time"] as! Double + 0.01) as AnyObject
    }
    j += 1
  }
  runnerTableView.reloadData()
}

编辑:

enter image description here

现在,滑动删除功能不起作用了。我滑动时没有附加内容。

我怎样才能使它再次工作?

最佳答案

更新

  1. 移除 updateTimer 中的 reloadData
  2. 使用我的代码显示您的行[j]["time"]

My workable way

来源

如果你想显示你的计时器,你可以使用这个:

func updateTimer() {
    var j = 0
    for _ in rows {
        if (rows[j]["Playing"] as! Bool == true ) {
            rows[j]["time"] = (rows[j]["time"] as! Double + 0.01) as AnyObject
        }
        j += 1
    }

    for cell in tableView.visibleCells {
        if let indexPath = tableView.indexPath(for: cell) {
            cell.timeLabel.text = "\(rows[indexPath.row]["time"])"
        }
    }
}

关于swift - 滑动删除不适用于计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45344533/

相关文章:

ios - 类型转换细胞类型出队的问题

ios - 如何在 Swift 中扩展 NSManagedObject 以包含 MKAnnotation?

ios - 如何从嵌入在不同 UINavigationController 中的多个 UIViewController 切换到一个 UIViewController

ios - 尝试打开 .sks 文件时 Xcode 7 崩溃

ios - 我如何处理对从我的 swift 应用程序中摇动 ios 设备的支持?

ios - 在 tableView 中显示自定义表格分隔符 UIView

swift - _OBJC_CLASS_$_Stripe clang 错误是 SWIFT

swift - 键盘显示不正确

ios - 在屏幕上移动八个节点(在随机起始位置/间隔)?

ios - IPV6 快速可达性