关于TableView的编辑按钮的写法的方式

在尝试进行编辑按钮添加与操作的时候,发现了以下情况:

下面两段代码:

override func viewDidLoad() {
    super.viewDidLoad()
    
    navigationItem.leftBarButtonItem = editButtonItem

以及

//编辑模式
    
 func setEditing(_ editing: Bool, animated: Bool) {
        super.setEditing(editing, animated: animated)
       tableView.setEditing(editing, animated: true)
    }

以上代码是不是swift4的写法?

感觉实现了以上代码,之前看的以下代码也许也可以实现,但是在模拟器中就不起作用了。

@IBAction func EditButton(_ sender: Any) {
        
            WLTableView.isEditing = !WLTableView.isEditing
            switch WLTableView.isEditing{
            case true:
                EditButton.title = "done"
            case false:
                EditButton.title = "edit"
                
            }

这行代码直接可以实现编辑删除行(在有commitediting style,canMoveRowAt,moveRowAt的前提下),
可是没有动画。

 func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
     return true
     }

这行代码在之前试过可能是需要有这个回调才可以实现编辑行。

最后的两段是不是swift3里的实现功能的方式?
他们有什么区别?
看文档里都可以实现方法,也有详细说明。

阅读 3.2k
1 个回答

根据添加按钮的方法有两种情况:

如果在代码里添加按钮:

 navigationItem.leftBarButtonItem = editButtonItem

如果在故事版里添加按钮:

需要设置Title:

请输入代码

点击编辑之后:
如果想要出现动画:
示例代码:

TableView.isEditing = !TableView.isEditing
switch TableView.isEditing{
        case true:
            EditButton.title = "done"
        case false:
            EditButton.title = "edit"

        }

isEditing需要修改成setEditing

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题