TableView编辑详解

这是关于使用Swift语言的TableView 编辑模式与是否具有动画属性。
要感谢那位朋友一直帮助我到十二点,让我输出这个笔记。

TableView 编辑模式与是否具有动画属性 详解

在一个TableView列表中,常见需要进行编辑的操作。

更改列表编辑状态

属性和方法(共两个)

isEditing

介绍

属性 :isEditing有一个属性为Bool值,true为可编辑状态,false为不可编辑状态

tableview.isEditing = true

此为表格进入可编辑状态。

setEditing

介绍

方法:进入编辑模式

 func setEditing(_ editing: Bool, animated: Bool) {
        super.setEditing(editing, animated: animated)
        TableView.setEditing(ture, animated: true)//括号里第一个true 就是isEditing的值
    }

进入编辑状态是否有动画

点击按钮之后

isEditing

无动画

setEditing

有动画

TableView.setEditing(editing, animated: )

setEditing括号里有animated,值true或false决定是否有动画

添加按编辑按钮的位置的不同方法

纯代码中

navigationItem.leftBarButtonItem = editButtonItem

此代码可省略设置点击之后的Title选中与未选中显示的字样:自动设置

TableView进入编辑模式:

 func setEditing(_ editing: Bool, animated: Bool) {
        super.setEditing(editing, animated: animated)
        TableView.setEditing(ture, animated: true)
    }

StoryBoard中

按钮在StoryBoard里设置的,默认是“编辑”。

为什么故事版里设置了标题,代码就需要设置?

StoryBoard里btn写了Title的话,代码就会默认是StoryBoard里的那个,所以需要设置标题。

以下为设置点击button之后的显示的字样的代码:

isEditing

若使用一行代码解决动画问题:

TableView.isEditing = !TableView.isEditing //给isEditing取反,无动画
switch TableView.isEditing{
        case true:
            editButton.title = "done"//修改标题
        case false:
            editButton.title = "edit"

        }

setEditing

func editAction()
  if.self.tableView.isEditing = false
     self.tableView.setEditing(true, animated:true)
     self.editBtn.title = "完成"
  }else{
     self.tableView.setEditing(false, animated:true)
     self.editBtn.title = "编辑"
     }
}

若使用一行代码解决添加动画问题:

tableView.setEditing(!self.tableView.isEditing, animated: true)//若为setEditing,有动画
switch TableView.isEditing{
        case true:
            editButton.title = "done"//修改标题
        case false:
            editButton.title = "edit"

        }

代码里的对象

isEditing/setEditing对象是tableview,

.title对象是btn。

在以上代码中

点击btn之后,tableView.isEditing/setEditing这句是进入编辑,btn.title这句是改标题

 wechat
产品北里,讲述产品和人性、涉及设计、技术和运营的公众号。
你们的赞赏是我更新的动力~