UITableViewCell左滑删除、批量编辑

实现cell的左滑删除

  • 只需要遵守tableView的代理,实现以下方法即可实现
//左滑编辑模式 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { //可在此对点击cell右边出现的按钮进行逻辑处理 }//设置左滑删除按钮的文字 - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath { //设置右边按钮的文字 return @"删除"; }

  • 实现以下方法可代替以上两个方法,还能添加多个按钮,但只适配到iOS 8.0
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {UITableViewRowAction *action1 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"关注" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {NSLog(@"点击了关注"); tableView.editing = NO; }]; UITableViewRowAction *action2 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"删除" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {//NSLog(@"点击了删除"); [self.wineArray removeObjectAtIndex:indexPath.row]; NSIndexPath *newPath = [NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section]; [tableView deleteRowsAtIndexPaths:@[newPath] withRowAnimation:UITableViewRowAnimationFade]; }]; return @[action1,action2]; }

  • 左滑出现两个按钮

    UITableViewCell左滑删除、批量编辑
    文章图片
    Snip20160624_1.png
  • 实现批量处理
//先设置tableView的多选属性 //设置多选 self.tableView.allowsMultipleSelectionDuringEditing = YES; //再在点击事件中实现逻辑 - (IBAction)editingModel { [self.tableView setEditing:!self.tableView.editing animated:YES]; }

  • 【UITableViewCell左滑删除、批量编辑】如图

    UITableViewCell左滑删除、批量编辑
    文章图片
    Snip20160624_2.png
  • 还有自定义cell批量删除以后有机会再讲

    推荐阅读