iOS tableView 如何禁止滑动手势删除,只允许在编辑模式下进行删除Cell

如何禁止滑动手势删除,只允许在编辑模式下进行删除Cell

s设置导航栏上的编辑按钮

- (IBAction)navigationEditButtonClick:(UIButton *)sender {
    
    if (sender.selected == NO) {
        sender.selected = YES;
        [sender setTitle:@"完成" forState:UIControlStateNormal];
        for (int i = 0; i < [_dataArray count];i++) {
            UIButton *button = (UIButton *)[self.view viewWithTag:1000 + i];
            button.hidden = YES;
            UIView *view = (UIView *)[self.view viewWithTag:2000 + i];
            view.hidden = YES;
        }
        _tableView.editing = YES;
    }else{
        sender.selected = NO;
        [sender setTitle:@"编辑" forState:UIControlStateNormal];
        for (int i = 0; i < [_dataArray count];i++) {
            UIButton *button = (UIButton *)[self.view viewWithTag:1000 + i];
            button.hidden = NO;
            UIView *view = (UIView *)[self.view viewWithTag:2000 + i];
            view.hidden = NO;
        }
        _tableView.editing = NO;
    }
}

实现TableView 的代理方法

#pragma mark - UITableViewDelegate

//指定行是否可编辑
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;
}

//设置tableview是否可编辑
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //这里是关键:这样写才能实现既能禁止滑动删除Cell,又允许在编辑状态下进行删除
    if (!tableView.editing)
        return UITableViewCellEditingStyleNone;
    else {
        return UITableViewCellEditingStyleDelete;
    }
}

//确定删除某一组的某一行
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSUInteger row = [indexPath row];
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        [self.list removeObjectAtIndex:row];
        //使用某种动画效果来删除特定的Cell
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                         withRowAnimation:UITableViewRowAnimationAutomatic];
    }
    //删除按钮出现的动画效果
    /*
     UITableViewRowAnimationAutomatic    //自动匹配
     UITableViewRowAnimationTop
     UITableViewRowAnimationBottom
     UITableViewRowAnimationLeft
     UITableViewRowAnimationRight
     UITableViewRowAnimationMiddle
     UITableViewRowAnimationFade
     UITableViewRowAnimationNone
     
     */
}

这是在今天的项目中遇到的一个细小的问题,但还是费了我不少时间,写下来希望能帮助其他人,同时,使得自己印象更深刻!

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值