首先说一下编辑的代理方法:
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
return YES;
}
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
}
}
实现以上代理方法就可以实现删除;
如果没有分组的话
// 删除数据源
[self.addressArr removeObjectAtIndex:indexPath.section];
// 删除cell
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
可是如果你分组的话,这样实现删除就要有bug啦!
所以需要添加一下代码,实现分组的删除:
// 更新
[tableView beginUpdates];
[self.addressArr removeObjectAtIndex:indexPath.section];
[tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationLeft];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
// 结束更新
[tableView endUpdates];
deleteSections:indexSetWithIndex:是用来删除没有cell的分组;本人的需求是一个分组只有一个数据所以不需要判断;如果你是多个数据就要判断一下是不是最后一个cell,如果只有一个cell就要执行这个方法啦;