【问题标题】:Dismiss UISwipeActionsConfiguration by swiping back通过向后滑动关闭 UISwipeActionsConfiguration
【发布时间】:2018-04-02 21:13:52
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ios uitableview uikit uiswipeactionsconfiguration


    【解决方案1】:

    好问题!

    这不是直接配置,但如果您在现有的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 数组[],但这没有任何作用。

    【讨论】:

      【解决方案2】:
      let delete = UIContextualAction(style: .destructive, title: "Delete") { (myContext, myView, complete) in
      
      //Did what you wanted to do
      complete(true)
      
      //Cancelled the action
      complete(false)
      

      }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-25
        • 1970-01-01
        • 1970-01-01
        • 2016-05-23
        • 1970-01-01
        • 2016-01-06
        • 2016-11-20
        相关资源
        最近更新 更多