iphone的tableview滑动删除
2012-08-01 16:44 Mr.Xer 阅读(296) 评论(0) 编辑 收藏 举报如果要允许用户删除表格内的对象,需要打开表格的编辑功能。这样表中的每个单元格就都会在左侧显示一个红色的删除图标。每个单元格在编辑过程中都会自动缩进:
- [ _table setEditing:YES animated:YES ];
这个操作应当由导航栏按钮来触发,比如一个标有Edit的按钮,或者是某些类似操作。编辑结束时,使用同一个方法来退出编辑模式:
- [ _table setEditing: NO animated: YES ];
在 编辑过程中,用户可以从表格中删除记录。用户会看到一个删除确认信息。确认之后,数据源的commitEditingStyle方法就会得到通知,从而令 应用程序得知有一个删除请求。这个方法也属于UITableViewDataSource协议。你需要从数据源中删除对应的数据,来满足这个请求。你还要 指示表格视图删除该行:
- - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle) editingStyle forRowAtIndexPath:(NSIndexPath *) indexPath
- {
- if (editingStyle == UITableViewCellEditingStyleDelete) {
- [_values removeObjectAtIndex:indexPath.row];
- [ _table setEditing: NO animated: YES ];
- [tableView reloadData];
- }
- }
提示
如果你的代理类中有这个方法,那么扫动删除功能会自动生效。
你可以向deleteRowsAtIndexPaths方法传递一个索引路径的数组,从而在表格中删除一到多行。你还可以在几个预定义的动画效果中指定一个,在删除单元格时显示。支持表3-9所示的动画效果。