这是关于使用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这句是改标题