iOS自定义删除cell

左滑删除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)