2

我的视图控制器需要跟踪 UISwipeAction 当前是否处于活动状态,因为在滑动操作期间不应允许编辑。为了实现这一点,我使用了一个标志,该标志在唯一的 UIContextualAction 中设置回默认值,这会删除该行。这工作正常:

override func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {  
  isTrailingSwipeActionActive = true

  let removeAction = UIContextualAction(style: .destructive, title: nil) { (action, iconView, completionHandler) in
    self.isTrailingSwipeActionActive = false

    completionHandler(true)
  }
}

但是,当在显示上下文操作时再次点击该行取消滑动操作时(单元格动画回到正常状态),显然不会触发删除操作并且我的标志也没有设置回来。

有没有办法在这样取消操作时收到通知?

4

1 回答 1

1

我找到了实际上非常简单的答案: didEndEditingRow一旦您点击关闭滑动操作,就会收到通知。

override func tableView(_ tableView: UITableView, didEndEditingRowAt indexPath: IndexPath?) {
  isTrailingSwipeActionActive = false
}
于 2020-02-03T12:36:46.047 回答