基于Swift的iOS应用程序开发:使用表格显示并控制数据(三):批量处理表格数据
来源:互联网 发布:centos编译安装php5.6 编辑:程序博客网 时间:2024/05/12 11:45
如果你想了解如何使用表格来显示数据,或是如何删除表格中的一行数据,请点击以下链接:
基于Swift的iOS应用程序开发:使用表格显示并控制数据(一):显示数据
基于Swift的iOS应用程序开发:使用表格显示并控制数据(二):删除表格中的数据
所谓批量处理,其实就是一次选中表格中的多行,然后对这些被选中的数据行做处理
1、允许表格被批量选中
在viewDidLoad()方法中,增加以下代码:
self.tableView.allowsMultipleSelectionDuringEditing = true此时,如果你希望自己的表格在默认情况下,就能够在每一行的最左侧出现一个复选框,那么还需要加上下面的代码:
self.tableView.setEditing(true, animated: true)这么做的话,就能满足最基本的表格多选要求了,效果如下:
另一种做法是,在界面上添加一个按钮,通过点击这个按钮,使得表格前方出现多选框:
首先需要默认表格一开始不显示每一行的复选框:
self.tableView.setEditing(false, animated: true)然后我们需要用到UITableViewController的一个自带的属性:self.editButtonItem。这个属性是一个按钮,每当用户按下这个按钮,就会触发表格的编辑事件,整个表格会右移,露出每一行左侧的操作按钮来。我们只需要把这个按钮显示在界面上就可以了。由于我使用的是UINavigationController,所以将这个按钮绑定到顶部导航栏的右侧:
self.navigationItem.rightBarButtonItem = self.editButtonItemself.navigationItem.rightBarButtonItem?.title = "编辑"
此时,整个viewDidLoad方法是这样的:
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)行被取消选中了")}
3、思路
由于在上述的步骤中,当表格被选中的时候,只会知道是哪一行被选中,并不会知道其它的东西。而我们在实际的应用开发过程中,经常会需要将被选中的数据进行一些后续处理,例如将被选中的行的id通过webservice传到服务器端等。而由于我们在现实表格中的数据的时候,一个最简单的方式就是将需要显示的数据事先放在一个数组中(详见此处),这样能够保证表格中的每一行和数组中的每一个元素都是一一顺序对应的。
因此,我们在处理被选中的行的时候,就简单多了。只需要得到被选中行的行号,然后用这个行号到数组里去获取实际的数据对象即可。
阅读全文
0 0
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(三):批量处理表格数据
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(一):显示数据
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(二):删除表格中的数据
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(四):使用UIRefreshController实现下拉刷新
- iOS开发总结之UITableView表格数据的批量操作
- Json 批量表格/表单数据的处理
- 控制表格的行列来显示数据
- 控制表格的行列来显示数据
- 控制表格的行列来显示数据
- 使用表格显示数据
- 处理报表表格的数据显示
- 基于Swift的iOS应用程序开发:使用NSUserDefaults存储本地数据
- iOS开发总结之UITableView表格数据的批量操作2
- 使用 Dojo 显示表格数据,并带筛选(filter)功能
- 使用 UITableView 创建表格应用——从plist文件加载并显示数据(转)
- 基于Swift的iOS应用程序开发:解析json格式的数据
- ext表格数据显示
- 表格中显示数据
- MYSQL数据库命名及设计规范
- Tensorflow深度学习之四:placeholder和Session
- FreeBSD开发手册中文版
- spark 基础知识- spark SQL专题
- 文章解析整理:《十分钟看懂图像语义分割技术》
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(三):批量处理表格数据
- Mycat使用遇到的错误
- VMware Linux共享文件夹 虚拟机无法共享解决方法
- ajax请求时request加请求头
- 数据挖掘(Data Mining, uva1591)
- easyui 关于Datagrid JSON对象内嵌对象的取值问题
- hibernate--第一天
- 冒泡排序
- angularjs 弹框