UITableViewCell 删除 自定义删除与系统删除共存

目前需要实现一个功能:

  • UITableViewCell 单选删除多选删除
    内容具体要求是:
    1. 没有 点击 多选删除 的时候只能进行 单选删除
    2. 点击了多选删除, 就只能多选删除, 并禁止单选删除操作
    3. 也就是说, 单选删除多选删除,不能同时出现

下面开始上关键地方的代码
  • 单选删除

// 重写该方法,就会出现删除按钮
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    // 删除操作的代码块...
}

// 修改删除按钮的名称
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return @"删除";
}
  • 多选删除

// 点击当前cell响应事件
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // 添加按钮没有隐藏则为单选删除
    if (self.addButton.hidden) {
        LDCellModel *c = self.array[indexPath.row];
        c.check = !c.check;
        [self.tableView reloadData];   // 刷新
    }
}
// 返回特定表格上的编辑样式
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (self.addButton.hidden) {
        return UITableViewCellEditingStyleNone;
    } else {
        return UITableViewCellEditingStyleDelete;
    }
}


实现该功能最关键的方式就是在于

-(UITableViewCellEditingStyle)tableView:(UITableView)tableView editingStyleForRowAtIndexPath:(NSIndexPath )indexPath; 这个方法...

你可能感兴趣的:(UITableViewCell 删除 自定义删除与系统删除共存)