首先可以设置一个按钮“编辑”,为其添加点击事件:
//点击“编辑”按钮
- (void)buttonAction:(id)sender
{
if (_tableView.editing == NO) {
[_tableView setEditing:YES animated:YES];
} else {
[_tableView setEditing:NO animated:YES];
}
}
//设置第一行可以编辑
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 0) {
return YES;
}
return YES;
}
//设置编辑动作(添加或者删除)
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 0) {
return UITableViewCellEditingStyleInsert;//添加
}
return UITableViewCellEditingStyleDelete;//删除
}
//设置真正的添加或者 删除事件
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
······
[tableView reloadData];//操作后立即刷新tableView
}
//设置移动
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
//移动
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{
//因为删除后引用计数为0 ~所以在删除之前先给dic, retain一下!
NSDictionary *dic = [[_arr objectAtIndex:sourceIndexPath.row] retain];//取出来保存
[_arr removeObjectAtIndex:sourceIndexPath.row];//删除
[_arr insertObject:dic atIndex:destinationIndexPath.row];//插入
[tableView reloadData];
[dic release];
}