10

我使用新的 iOS 11 API 实现了尾随滑动动作UISwipeActionsConfiguration,我可以通过从边缘滑动来显示它们,可以一直滑动到左侧等。

但是我无法通过滑回原始位置来隐藏这些动作。如果我向左拖动一点,然后再向右拖动,它确实会消失(参见 gif)。它也可以通过点击一个单元格来消除。

官方邮件应用程序确实支持拖动以隐藏滑动操作,因此 API 中可能也有一种方法。

在此处查看示例项目:https ://github.com/nezhyborets/ios-case-study-playgrounds/tree/master/UISwipeActionsConfiguration

在此处输入图像描述

4

2 回答 2

11

好问题!

这不是直接配置,但如果您还实现了leading除了现有的操作之外的操作trailing

func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
    let action = UIContextualAction(style: .normal, title: "bla") { (action, view, success) in
        success(true)
    }
    return UISwipeActionsConfiguration(actions: [action])
}

这会给你想要的效果。

不幸的是,这需要一个向右滑动的动作。我尝试制作actionsarray [],但这没有任何作用。

于 2018-04-02T21:51:11.467 回答
4
let delete = UIContextualAction(style: .destructive, title: "Delete") { (myContext, myView, complete) in

//Did what you wanted to do
complete(true)

//Cancelled the action
complete(false)

}

于 2019-03-07T21:22:55.527 回答