美文网首页
iOS开发之tableView左滑删除的两种方法

iOS开发之tableView左滑删除的两种方法

作者: 朱晓晓的技术博客 | 来源:发表于2019-01-23 16:48 被阅读7次

    第一种

    - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
        //第二组可以左滑删除
        if (indexPath.section == 2) {
            return YES;
        }
        
        return NO;
    }
     
    // 定义编辑样式
    - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
        return UITableViewCellEditingStyleDelete;
    }
     
    // 进入编辑模式,按下出现的编辑按钮后,进行删除操作
    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
        if (editingStyle == UITableViewCellEditingStyleDelete) {
            
            if (indexPath.section == 2) {
                
                //取消该演员的申请
                NSString *user_no = [self.actor_cpllaboredArray[indexPath.row] valueForKey:@"user_no"];
                [self fetch_api_Recruit_withdraw:user_no];
                
            } 
        }
    }
     
    // 修改编辑按钮文字
    - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
        return @"删除";
    }
    
    

    第二种,iOS11之后才有的

    
    - ( UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath {
        //删除
        UIContextualAction *deleteRowAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:@"delete" handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) {
            [self.titleArr removeObjectAtIndex:indexPath.row];
            completionHandler (YES);
            [self.tableView reloadData];
        }];
        deleteRowAction.image = [UIImage imageNamed:@"删除"];
        deleteRowAction.backgroundColor = [UIColor redColor];
        
        UISwipeActionsConfiguration *config = [UISwipeActionsConfiguration configurationWithActions:@[deleteRowAction]];
        return config;
    }
    

    相关文章

      网友评论

          本文标题:iOS开发之tableView左滑删除的两种方法

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