美文网首页
iOS 开发_滑动删除Cell那点事儿之 单纯删除

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

作者: iOS_PM_WEB_尛鹏 | 来源:发表于2017-03-31 17:01 被阅读0次

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

    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那点事儿之 单纯删除

          本文链接:https://www.haomeiwen.com/subject/nzfpottx.html