美文网首页
iOS自定义删除cell

iOS自定义删除cell

作者: 肉肉要次肉 | 来源:发表于2018-07-11 11:33 被阅读45次

    左滑删除cell方法:(要使用代理)

    - (void)tableView:(UITableView*)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath*)indexPath{

       // 删除模型

        [self.wineArray removeObjectAtIndex:indexPath.row];

       // 刷新

        [tableViewdeleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationLeft];

    }

    //修改Delete按钮文字为“删除”

    - (NSString*)tableView:(UITableView*)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath*)indexPath{

       return@"删除";

    //    return [NSString stringWithFormat:@"删除-%zd", indexPath.row];

    }

    左滑删除出现两个按钮的方法:(要使用代理)

    按钮:

    - (IBAction)remove {

        //删除模型数据

        [self.wineArray removeObjectAtIndex:0];

        [self.wineArray removeObjectAtIndex:0];

       //刷新

       NSArray*indexPaths = @[  [NSIndexPath indexPathForRow:0inSection:0],    [NSIndexPath indexPathForRow:1inSection:0] ];

        [self.tableView deleteRowsAtIndexPaths:indexPathswithRowAnimation:UITableViewRowAnimationMiddle];

    }

    - (void)tableView:(UITableView*)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath*)indexPath{}

    //左滑cell时出现什么按钮

    - (NSArray*)tableView:(UITableView*)tableView editActionsForRowAtIndexPath:(NSIndexPath*)indexPath{

       UITableViewRowAction*action0 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"取消关注"handler:^(UITableViewRowAction*action,NSIndexPath*indexPath) {

           NSLog(@"点击了关注");

         // 收回左滑出现的按钮(退出编辑模式)

            tableView.editing=NO;

        }];

     UITableViewRowAction*action1 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"删除"handler:^(UITableViewRowAction*action,NSIndexPath*indexPath) {

    //要删除的哪一行

            [self.wineArray removeObjectAtIndex:indexPath.row];

            [tableViewdeleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic];

        }];

    编辑模式

    #pragma mark -数据刷新操作

    - (IBAction)remove {

        [self.tableView setEditing:!self.tableView.isEditing animated:YES];

    }

    #pragma mark - <代理方法>

    // 只要实现了这个方法,左滑出现Delete按钮的功能就有了,点击了“左滑出现的Delete按钮”会调用这个方法,点击了删除按钮 

    - (void)tableView:(UITableView*)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath*)indexPath{

       NSLog(@"kkkk");

        //删除模型

        [self.wineArray removeObjectAtIndex:indexPath.row];

        //刷新

        [tableViewdeleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationLeft];

    }

    //修改Delete按钮文字为“删除”

    - (NSString*)tableView:(UITableView*)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath*)indexPath{

       return@"删除";

    }

    批量删除

    #pragma mark -数据刷新操作

    - (IBAction)multipleRemove {//批量删除按钮方法

        [self.tableView setEditing:!self.tableView.isEditing animated:YES];

        self.removeButton.hidden= !self.tableView.isEditing;

    }

    - (IBAction)remove {

        self.tableView.indexPathsForSelectedRows = [0, 1]

        //获得需要删除的模型数据

       NSMutableArray*deletedWineArray = [NSMutableArray array];

       for(NSIndexPath*indexPathin self.tableView.indexPathsForSelectedRows) {

            [deletedWineArrayaddObject:self.wineArray[indexPath.row]];

        }

        //删除模型数据

        [self.wineArray removeObjectsInArray:deletedWineArray];

        //刷新

        [self.tableView deleteRowsAtIndexPaths:self.tableView.indexPathsForSelectedRows withRowAnimation:UITableViewRowAnimationLeft];

    }

    #pragma mark - <代理方法>

    // 只要实现了这个方法,左滑出现Delete按钮的功能就有了,点击了“左滑出现的Delete按钮”会调用这个方法

    - (void)tableView:(UITableView*)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath*)indexPath{

       NSLog(@"点击了代理方法");

        //删除模型

        [self.wineArray removeObjectAtIndex:indexPath.row];

       //刷新

        [tableViewdeleteRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationLeft];

    }

    //修改Delete按钮文字为“删除”

    - (NSString*)tableView:(UITableView*)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath*)indexPath{

       return@"删除";

    }

    相关文章

      网友评论

          本文标题:iOS自定义删除cell

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