这似乎可以解决您所寻找的问题。然而,该动画与iOS 10中的动画不完全相同,但它消除了完全滑动,看起来仍然很好。
@available(iOS 11.0, *)
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let deleteAction = UIContextualAction.init(style: UIContextualAction.Style.destructive, title: "Delete", handler: { (action, view, completion) in
completion(true)
})
let editAction = UIContextualAction.init(style: UIContextualAction.Style.normal, title: "Edit", handler: { (action, view, completion) in
completion(true)
})
let config = UISwipeActionsConfiguration(actions: [deleteAction, editAction])
config.performsFirstActionWithFullSwipe = false
return config
}
关键代码是 config.performsFirstActionWithFullSwipe = false
,这将禁用全屏滑动。
以上代码将覆盖 iOS 11 上的 func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath)
,但对于 iOS 10 以下的设备,仍将使用您的 editActionsforRowAt
。
UISwipeActionsConfiguration
和performsFirstActionWithFullSwipe
属性,例如作为一个起点。 - holex