IOS Tableview删除-一行和多行

原创Blog,转载请注明出处
blog.csdn.net/hello_hwc


删除一行
效果如图
IOS Tableview删除-一行和多行_第1张图片

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

然后,对结束的时候状态进行判断,如果是点击删除了,则删除对应的行

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        if (tableView == self.tableView) {
            [self.dataArray removeObjectAtIndex:indexPath.row];
            [self.tableView beginUpdates];
            [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
            [self.tableView endUpdates];
        }
    }
}

删除多行
IOS Tableview删除-一行和多行_第2张图片
在viewDidLoad中,设置允许在编辑状态下多选

self.tableView.allowsMultipleSelectionDuringEditing = YES;

然后,在删除按键的响应函数中,如下处理,注意一点,先删除对应的dataSource,在更新table

- (IBAction)delete:(id)sender {
    if (self.tableView.isEditing) {
        [self.tableView beginUpdates];
        NSArray * selectRows = [self.tableView indexPathsForSelectedRows];
        NSMutableIndexSet * indexpaths = [[NSMutableIndexSet alloc] init];
        for(NSIndexPath * path in selectRows){
            [indexpaths addIndex:path.row];
        }
        [self.dataArray removeObjectsAtIndexes:indexpaths];
        [self.tableView deleteRowsAtIndexPaths:selectRows withRowAnimation:UITableViewRowAnimationAutomatic];
        [self.tableView endUpdates];
        [self.tableView setEditing:NO animated:YES];
    }else{
        [self.tableView setEditing:YES animated:YES];
    }
}

你可能感兴趣的:(UIKit)