【iOS11】UITableViewセルのスワイプで削除を無効にする方法【Swift】
iOS11ではUITableViewのセルをスワイプしただけで削除されてしまいます。
元々のコード
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let deleteButton: UITableViewRowAction = UITableViewRowAction(style: .normal, title: "削除") { (action, index) -> Void in
self.array.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .fade)
}
deleteButton.backgroundColor = UIColor.red
return [deleteButton]
}
誤操作を防ぐため、従来のようにスワイプ後一旦停止し、削除ボタンを押した際にセルの削除を行いたい場合は下記のコードを追記することで解決できます。
追記するコード
@available(iOS 11.0, *)
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let delete = UIContextualAction(style: .destructive, title: "削除") { (action, sourceView, completionHandler) in
completionHandler(true)
self.array.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .fade)
}
let swipeAction = UISwipeActionsConfiguration(actions: [delete])
swipeAction.performsFirstActionWithFullSwipe = false
return swipeAction
}
参考
・How do I disable the full swipe on a tableview cell in iOS11
Author And Source
この問題について(【iOS11】UITableViewセルのスワイプで削除を無効にする方法【Swift】), 我々は、より多くの情報をここで見つけました https://qiita.com/Simmon/items/3e5958763c2be755a3f5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .