如何根据 UITableView 扩展中 tableview 的版本状态显示完成按钮?
How to show a done button depending on the edition status of a tableview, from a UITableView extension?
我写了一个 UITableView 扩展,允许在持有表格视图后重新排序单元格。
所以 tableView 按预期进入编辑模式,但我想做的是在 viewController 的导航栏中添加一个完成按钮,当正在编辑 tableView 时,这将结束编辑点击时的模式。
如何根据 UITableView 扩展中是否正在编辑 tableView 来 show/hide viewController 中的这个按钮?
这是我的分机:
import UIKit
extension UITableView {
func addLongPressToTableView() {
let longPress = UILongPressGestureRecognizer(target: self, action: #selector(onLongPressGesture(sender:)))
longPress.minimumPressDuration = 0.8 // optional
self.addGestureRecognizer(longPress)
}
@objc func onLongPressGesture(sender: UILongPressGestureRecognizer) {
if (sender.state == .began) {
self.isEditing = true
self.setEditing(true, animated: false)
UIImpactFeedbackGenerator(style: .light).impactOccurred()
}
}
}
// ViewController, hide/show editButtonItem (done button?)
// navigationItem.rightBarButtonItems = [addButton, editButtonItem]
UITableViewDelegate 提供对协调编辑的支持。使用以下两个委托方法来响应编辑状态的变化。
func tableView(UITableView, willBeginEditingRowAt: IndexPath)
func tableView(UITableView, didEndEditingRowAt: IndexPath?)
我写了一个 UITableView 扩展,允许在持有表格视图后重新排序单元格。
所以 tableView 按预期进入编辑模式,但我想做的是在 viewController 的导航栏中添加一个完成按钮,当正在编辑 tableView 时,这将结束编辑点击时的模式。
如何根据 UITableView 扩展中是否正在编辑 tableView 来 show/hide viewController 中的这个按钮?
这是我的分机:
import UIKit
extension UITableView {
func addLongPressToTableView() {
let longPress = UILongPressGestureRecognizer(target: self, action: #selector(onLongPressGesture(sender:)))
longPress.minimumPressDuration = 0.8 // optional
self.addGestureRecognizer(longPress)
}
@objc func onLongPressGesture(sender: UILongPressGestureRecognizer) {
if (sender.state == .began) {
self.isEditing = true
self.setEditing(true, animated: false)
UIImpactFeedbackGenerator(style: .light).impactOccurred()
}
}
}
// ViewController, hide/show editButtonItem (done button?)
// navigationItem.rightBarButtonItems = [addButton, editButtonItem]
UITableViewDelegate 提供对协调编辑的支持。使用以下两个委托方法来响应编辑状态的变化。
func tableView(UITableView, willBeginEditingRowAt: IndexPath)
func tableView(UITableView, didEndEditingRowAt: IndexPath?)