我使用新的iOS 11 UISwipeActionsConfiguration
API实现了拖尾滑动操作,我可以通过从边缘滑动来显示它们,可以一直滑到左侧等。
但我无法通过滑回原来的位置来隐藏这些行为。如果我向左拖动一点然后向右拖动它会消失(参见gif)。通过点击一个单元格也会被解雇。
官方邮件应用程序确实支持拖动以隐藏滑动操作,因此API中也可能有一种方法。
请参阅此处的示例项目:https://github.com/nezhyborets/ios-case-study-playgrounds/tree/master/UISwipeActionsConfiguration
答案 0 :(得分:6)
很棒的问题!
这不是直接配置,但除了现有的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])
}
这将为您提供所需的效果。
不幸的是,这需要一个向右滑动的动作。我尝试制作actions
数组[]
,但这并没有做任何事情。
答案 1 :(得分:1)
let delete = UIContextualAction(style: .destructive, title: "Delete") { (myContext, myView, complete) in
//Did what you wanted to do
complete(true)
//Cancelled the action
completed(false)