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

时间:2019-07-30 06:00:07

标签: swift uitableview uiswipeactionsconfiguration

我在tableView上实现了前导滑动操作(“删除”),由于我不知道的原因,该操作也显示为尾随滑动操作。参见下面的代码:

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 ...”时,仅出现尾随滑动动作。如果有人能告诉我我错过了什么,请多谢。谢谢。 trailing swipe

leading swipe

2 个答案:

答案 0 :(得分:2)

使用此代码来防止trailingSwipeAction()

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

答案 1 :(得分:1)

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

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

通过传递一组空的动作,由于有0组可能的动作,因此尾随滑动将消失。