tableview系统自带的多选操作(全选,全不选,删除)

最近在写一个cell的多选操作,包括全选,全不选,多项删除,cell用的就是系统的cell

cell前面的勾选怎么出现?

先设置tableView.editing=true 然后实现下面代理方法,在下面打理方法中如果你只返回Insert 就会出现➕的图表在cell的左边,如果只返回Delete则出现➖的图表在左边,要想出现可勾选的图表,则如下面代码一样,返回两个

func  tableView(tableView: UITableView, editingStyleForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCellEditingStyle {

return UITableViewCellEditingStyle.init(rawValue: UITableViewCellEditingStyle.Insert.rawValue | UITableViewCellEditingStyle.Delete.rawValue)!



全选怎么实现?

要想全选,当然首先要在编辑状态tableView.editing=true

//全选

}

func allSelected()

{

deleteArray.removeAll()

for i in 0...peoples.count-1{

let indexPath1=NSIndexPath(forRow: i,inSection: 0)

self.tableView.selectRowAtIndexPath(indexPath1, animated: true, scrollPosition: UITableViewScrollPosition.Top)

}

}

deleteArray是我声明的一个数组保存删除以后的元素,他的初始化时等于cell数据来源的那个数组


全不选怎么实现呢?

//全不选

func unAllSelected()

{

for i in 0...peoples.count-1{

let indexPath1=NSIndexPath(forRow: i,inSection: 0)

self.tableView.deselectRowAtIndexPath(indexPath1, animated: true)

}

}


删除的实现:声明一个数组,保存你点击的cell之外的元素,然后刷新列表。将剩下的元素展示出来

func delete()

{

peoples=deleteArray

tableView.reloadData()

}

当点击勾选的时候,将执行的是didSelectRowAtIndexPath这个代理方法

所以我们要在deleteArray中移除掉所在index的元素

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

//deleteArray .removeAtIndex(indexPath.row)

if deleteArray.contains(peoples[indexPath.row]) {

deleteArray.removeAtIndex(deleteArray.indexOf(peoples[indexPath.row])!)

}

print(deleteArray)

commitArray.insert(peoples[indexPath.row], atIndex: indexPath.row)

}

当我们再次点击取消勾选的时候,会执行didDeselectRowAtIndexPath这个方法

我们还要将移除的元素在加进去

func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {

deleteArray.insert(peoples[indexPath.row], atIndex: indexPath.row)

print(deleteArray)

}

tableview系统自带的多选操作(全选,全不选,删除)_第1张图片
tableview系统自带的多选操作(全选,全不选,删除)_第2张图片
tableview系统自带的多选操作(全选,全不选,删除)_第3张图片
tableview系统自带的多选操作(全选,全不选,删除)_第4张图片
tableview系统自带的多选操作(全选,全不选,删除)_第5张图片

你可能感兴趣的:(tableview系统自带的多选操作(全选,全不选,删除))