为什么前导滑动动作也被复制为尾随动作?

Why is the leading swipe action also duplicated as a trailing action?

我在我的 tableView 上实现了前导滑动操作 ('Delete'),出于某种我无法弄清楚的原因,它也显示为尾随滑动操作。请参阅下面的代码:

func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) ->
    UISwipeActionsConfiguration? {
    let delete1 = deleteAction(at: indexPath)
    return UISwipeActionsConfiguration(actions: [delete1])
}

func deleteAction(at indexPath: IndexPath) -> UIContextualAction {
    let action = UIContextualAction(style: .destructive, title: "Delete") { (action, view, completion) in
        self.delete(at: indexPath)
    }
    return action
}

我以前有一个拖尾滑动动作,但我完全删除了这个功能。当我将 'leadingSwipeActionsConfigurationForRowAt' 更改为 'trailingSwipeActions...' 时,只会出现拖尾滑动动作。如果有人能告诉我我错过了什么,将不胜感激。谢谢。

因为这是启用滑动时的默认行为。如果您只想在左侧执行破坏性删除操作,您可以执行类似的操作来禁用尾部的滑动。

func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
   return UISwipeActionsConfiguration(actions: [])
}

通过一组空的动作,由于有 0 组可能的动作,拖尾滑动将消失。

使用此代码防止trailingSwipeAction()

    func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle
    {
        return .none
    }
    func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
        return UISwipeActionsConfiguration(actions: [])
    }