iOS 开发_滑动删除Cell那点事儿之 单纯删除

【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!

1.应用场景举例:

iOS 开发_滑动删除Cell那点事儿之 单纯删除_第1张图片
Paste_Image.png

2.实现目标:

当UITableViewCell对象向左滑动时,显示删除选项点击后可以对当前Cell进行删除

3.代码说明:

//遵循UITableViewDataSource/UITableViewDelegate协议,我就不说了
/** 开启cell的编辑模式*/
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;
}
/** 设置cell的编辑模式下,可操作的类型*/
/** 这里可操作的类型如果为多种,则以或 | 的方式进行返回*/
//  return   UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert    删除和插入
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return   UITableViewCellEditingStyleDelete;
}
/** 进入编辑状态后,按下编辑按钮后触发的操作*/
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView setEditing:NO animated:YES];
    if (editingStyle == UITableViewCellEditingStyleDelete) {//删除操作
        //为了避免误删除,弹出提示窗让用户进行确认
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:@"你确定删除该消息?" preferredStyle:UIAlertControllerStyleAlert];
         [alertController addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]];
        [alertController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
            //确定 即为删除 用数据源_dataArray移除掉对应的数据
            [_dataArray removeObjectAtIndex:indexPath.row];
            //移除后在将tableView对应的行删除刷新
            [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
        }]];
        [self presentViewController:alertController animated:YES completion:nil];
    }
}
/** 修改编辑按钮文字*/
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return @"删除";
}
/** 优化效果:设置在tableView进入编辑状态时,Cell不会缩进*/
- (BOOL)tableView: (UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
    return NO;
}

你可能感兴趣的:(iOS 开发_滑动删除Cell那点事儿之 单纯删除)