如果你想了解如何使用表格来显示数据,或是如何删除表格中的一行数据,请点击以下链接:
基于Swift的iOS应用程序开发:使用表格显示并控制数据(一):显示数据
基于Swift的iOS应用程序开发:使用表格显示并控制数据(二):删除表格中的数据
所谓批量处理,其实就是一次选中表格中的多行,然后对这些被选中的数据行做处理
1、允许表格被批量选中
self.tableView.allowsMultipleSelectionDuringEditing = true
此时,如果你希望自己的表格在默认情况下,就能够在每一行的最左侧出现一个复选框,那么还需要加上下面的代码:self.tableView.setEditing(true, animated: true)
这么做的话,就能满足最基本的表格多选要求了,效果如下:self.tableView.setEditing(false, animated: true)
然后我们需要用到UITableViewController的一个自带的属性:self.editButtonItem。这个属性是一个按钮,每当用户按下这个按钮,就会触发表格的编辑事件,整个表格会右移,露出每一行左侧的操作按钮来。我们只需要把这个按钮显示在界面上就可以了。由于我使用的是UINavigationController,所以将这个按钮绑定到顶部导航栏的右侧:self.navigationItem.rightBarButtonItem = self.editButtonItem
self.navigationItem.rightBarButtonItem?.title = "编辑"
override func viewDidLoad() {
super.viewDidLoad()
/*
* 允许表格被多行批量编辑
*/
self.tableView.allowsMultipleSelectionDuringEditing = true
/*
* 设置在界面初始化的时候,表格前方的多选框隐藏或者显示
*/
self.tableView.setEditing(false, animated: true)
self.navigationItem.rightBarButtonItem = self.editButtonItem
self.navigationItem.rightBarButtonItem?.title = "编辑"
}
2、处理被选中的行
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("第\(indexPath.row)行被选中了")
}
重载以下方法,用来处理被取消选中的行:
override func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
print("第\(indexPath.row)行被取消选中了")
}