ios 通过向后滑动来取消UISwipeActionsConfiguration

bnl4lu3b  于 2023-02-01  发布在  iOS
关注(0)|答案(2)|浏览(130)

我使用新的iOS 11 UISwipeActionsConfiguration API实现了拖尾滑动动作,我可以通过从边缘滑动来显示它们,可以一直滑动到左侧等。
但是我不能通过滑动回到原来的位置来隐藏这些操作,如果我向左拖动一点,然后再向右拖动,它就会消失(见gif),点击单元格也会消失。
官方的邮件应用程序确实支持拖动来隐藏滑动动作,所以API中也可能有一种方法。
请在此处查看示例项目:https://github.com/nezhyborets/ios-case-study-playgrounds/tree/master/UISwipeActionsConfiguration

zujrkrfu

zujrkrfu1#

问得好!
这不是直接配置,但如果除了现有trailing之外,还为leading实施了操作:

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])
}

这会给你想要的效果。
不幸的是,这需要一个向右滑动的动作,我试着把actions数组变成[],但是没有任何作用。

e1xvtsh3

e1xvtsh32#

// Create a destructive context action
let delete = UIContextualAction(style: .destructive, title: "Delete") { (myContext, myView, complete) in

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

    // Cancelled the action
    complete(false)
}

相关问题