如果要允许用户删除表格内的对象,需要打开表格的编辑功能。这样表中的每个单元格就都会在左侧显示一个红色的删除图标。每个单元格在编辑过程中都会自动缩进:
[ _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];
}
}
![](http://hi.csdn.net/attachment/201202/6/0_1328524932p776.gif)
提示
如果你的代理类中有这个方法,那么扫动删除功能会自动生效。
你可以向deleteRowsAtIndexPaths方法传递一个索引路径的数组,从而在表格中删除一到多行。你还可以在几个预定义的动画效果中指定一个,在删除单元格时显示。支持表3-9所示的动画效果。