UITableView 系列四 :项目中行的操作 (添加移动和删除)(实例)
这篇文章主要讲的表格的操作包括:标记行、移动行、删除行、插入行。
?
这次就不从头建立工程了,在http://dl.iteye.com/topics/download/441cdcca-3191-321b-b68e-03e298de7afd下载工程。这个工程就是最简单的产生一个表格并向其中写入数据。用Xcode 4.2打开它,在这个工程基础上实现以上操作。
?
1、标记行
?
这里讲的标记行指的是单击此行,可以实现在此行右边出现一个勾,如下图所示:
?
?
为了实现标记功能,在ViewController.m中@end之前添加代码:
????? ???? ??? UITableViewCellAccessoryCheckmark??????? ??? UITableViewCellAccessoryDetailDisclosureButton
?
???
??????????? ??
UITableViewCellAccessoryDisclosureIndicator??????????????? ? ?UITableViewCellAccessoryNone
?
注意,上面第二张图片中的蓝色圆圈不仅仅是一个图标,还是一个控件,点击它可以触发事件,在上一篇博客《iOS开发16:使用Navigation Controller切换视图》使用过。
?
2、移动行
?
想要实现移动或者删除行这样的操作,需要启动表格的编辑模式。使用的是setEditing:animated:方法。
?
2.1 打开ViewController.xib,将其中的表格控件映射成Outlet到ViewController.h,名称为myTableView。
2.2 打开ViewController.m,在viewDidLoad方法最后添加代码:
???2.4 运行,从下图可以看到实现了行的移动:
?
?
但是也会发现,现在无法对每行进行标记了。这说明,在编辑模式下,无法选择行,从而didSelectRowAtIndexPath这个方法不会执行。
?
3、删除行
?
从第2步过来,实现删除某行,其实比较简单了。
3.1将editingStyleForRowAtIndexPath方法中的UITableViewCellEditingStyleNone修改成UITableViewCellEditingStyleDelete。
?
3.2 在@end之前添加代码:
???刚运行时显示如左边的图片,点击某一行左边的圆圈图标,会显示如中间图片所示。然后点击Delegate按钮,那一行就会被删除掉,如右边的那张图片所示,它显示的是删除时的效果。
?
4、插入行
?
这个与删除行类似。
4.1 首先将editingStyleForRowAtIndexPath方法中的UITableViewCellEditingStyleDelete修改成UITableViewCellEditingStyleInsert。
?
4.2在3.2添加的方法中添加代码:
?上面的代码中也可以不用insertRowsAtIndexPaths方法,而直接使用[tableView reloadData];语句,但是这样就没有添加的效果了。
?
4.3 好了,运行一下:
?
???
?
刚运行时如上面左图所示,单击了某个加号后,新的一行就从右边飞进来了,因为在insertRowsAtIndexPaths中用了参数UITableViewRowAnimationRight。
?
来源:http://my.oschina.net/plumsoft/blog/53271
?
?
?
?
?