iOS tableView左滑删除的两种方法

这篇博客分享了两种使用iOS系统自带方法实现tableView左滑删除的操作,无需自定义cell内的手势。第一种方法提供了可直接使用的代码,适用于第二组cell,并且可以自定义更多操作。第二种方法适用于iOS11及以上版本,支持设置image和title,带有动画效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚开始的时候,我还自己在自定义的cell里面加手势,计算偏移量做左滑操作,后来才发现,好蠢啊,出力不讨好。唉。现在分享一下我发现的新方法,都是tableView自带的方法。完全不用在花时间自定义。

第一种。我直接上代码啦~~

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    //第二组可以左滑删除
    if (indexPath.section == 2) {
        return YES;
    }
    
    return NO;
}

// 定义编辑样式
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewCellEditingStyleDelete;
}

// 进入编辑模式,按下出现的编辑按钮后,进行删除操作
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        
        if (indexPath.section == 2) {
            
            //取消该演员的申请
            NSString *user_no = [self.actor_cpllaboredArray[indexPath.row] valueForKey:@"user_no"];
            [self fetch_api_Recruit_withdraw:user_no];
            
        } 
    }
}

// 修改编辑按钮文字
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
    return @"删除";
}

这就是第一种方法,直接copy可用,我这里是第二组的cell可以左滑,可以自己更改,也可以更改样式,不止删除一种操作。点击删除 之后的我空在那,自己可以添加代码的。

 

第二种,是iOS11 后的新方法

- ( UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath {
    //删除
    UIContextualAction *deleteRowAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:@"delete" handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) {
        [self.titleArr removeObjectAtIndex:indexPath.row];
        completionHandler (YES);
        [self.tableView reloadData];
    }];
    deleteRowAction.image = [UIImage imageNamed:@"删除"];
    deleteRowAction.backgroundColor = [UIColor redColor];
    
    UISwipeActionsConfiguration *config = [UISwipeActionsConfiguration configurationWithActions:@[deleteRowAction]];
    return config;
}

这个方法是iOS11之后的方法,可以设置image和title ,还自带动画效果,体验一下吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值