删除UITableViewCell,取决于它所在的部分

时间:2015-03-30 14:39:44

标签: ios uitableview

我遇到了一个问题:我有2个UITableView部分,我希望第一部分中的单元格可以删除(当向左滑动显示删除时),第二部分中的单元格无法删除。

有人给我一个提示,谢谢。

1 个答案:

答案 0 :(得分:0)

您可以从tableView:canEditRowAtIndexPath:协议实施UITableViewDataSource方法,以确定是否可以删除该行...

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.section == 1) {
        return NO;
    } else {
        return YES;
    }
}

然后,要处理删除,您将使用tableView:commitEditingStyle:forRowAtIndexPath:方法...

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    // Check editing style and take action (delete or edit)
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        NSLog(@"Delete row %ld in section %ld", (long)indexPath.row, (long)indexPath.section);
        [self.tableView beginUpdates];
        [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
        [self.tableView endUpdates];
    }
}

我假设您已经实施了UITableViewDataSource委托协议,因此只应添加这些方法。