美文网首页
iOS Swift tableView 编辑模式 左滑 删除数据

iOS Swift tableView 编辑模式 左滑 删除数据

作者: 转身是天涯 | 来源:发表于2018-12-28 15:21 被阅读0次

    编辑模式

    1. editButtonItem

      self.navigationItem.rightBarButtonItem = editButtonItem
    //配合editButtonItem
        override func setEditing(_ editing: Bool, animated: Bool) {
            super.setEditing(editing, animated: animated)
            self.tableView.setEditing(editing, animated: true)
        }
    

    2.左滑删除

    直接实现下面的方法

    实现的方法

      //设置哪些行可以编辑
      func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
            if(indexPath.row == 0){
                return false
            }else{
                return true
            }
        }
        
        // 设置单元格的编辑的样式
        func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
            return UITableViewCell.EditingStyle.delete
        }
        
        //设置点击删除之后的操作
        func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
            if editingStyle == .delete {
                // Delete the row from the data source
                workManager.updateCollection(withYear: yearForSearch, month: monthForSearch, row: indexPath.row - 1)
                count = count - 1
                tableView.deleteRows(at: [indexPath], with: .fade)
                tableView.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .fade)
            } else if editingStyle == .insert {
                // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
            }
        }
    

    其中count - 1是因为numberOfRowsInSection这里返回了count,必须要count - 1 否则会报错Invalid update,意思是删除前后 数量应该对应,count不减1的话数量不对。

    其它方法

    多个按钮

    editActionsForRowAtIndexPath
    能设置出现编辑的按钮 默认是删除 可以自定义UITableViewRowAction
    可以设置多个操作,操作完tableView.editing = False 退出编辑模式

    多选

    allowsMultipleSelectionDuringEditing

    相关文章

      网友评论

          本文标题:iOS Swift tableView 编辑模式 左滑 删除数据

          本文链接:https://www.haomeiwen.com/subject/wwoslqtx.html