ios 实现在tableViewCell上面添加长按手势 删除该条cell以及列表后台数据等

自己的代码  需要   把属性更改成自己要使用的

//创建长按手势

    在cellForRowAtIndexPath代理方法中

                UILongPressGestureRecognizer *longPressGR = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(lpGR:)];

                //设定最小的长按时间 按不够这个时间不响应手势

                longPressGR.minimumPressDuration = 1;

                [cell addGestureRecognizer:longPressGR];

//实现手势对应的功能

-(void)lpGR:(UILongPressGestureRecognizer *)lpGR

{

    if (lpGR.state == UIGestureRecognizerStateBegan) {//手势开始

        CGPoint point = [lpGR locationInView:self.tbFirst];

        self.index = [self.tbFirst indexPathForRowAtPoint:point]; // 可以获取我们在哪个cell上长按

        self.indexNum = self.index.row;

    }

    if (lpGR.state == UIGestureRecognizerStateEnded)//手势结束

    {

        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"是否删除" message:nil delegate:self cancelButtonTitle:@"确认" otherButtonTitles:@"取消", nil];

        [alert show];

    }

}

 //提示框代理方法

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

    if (buttonIndex == 0) {

        NSDictionary * dic = self.hopeDs[self.indexNum];

        NSString *url = [NSString stringWithFormat:@"%@%@",JJBaseUrl,@"/v1/infomarket/delPost"];

        NSMutableDictionary *params = [NSMutableDictionary dictionary];

        params[@"postId"] = dic[@"id"];

        params[@"ticket"] = [JJUserInfoModel userInfoFromFile].ticket;

        [JJHttpTools deleteUrl:url params:params success:^(id json) {

            [JJMBProgressTool showSuccessProgressViewWithText:@"已删除"];

            [self.hopeDs removeObjectAtIndex:self.indexNum];

            //删除列表内容

            [self.tbFirst deleteRowsAtIndexPaths:[NSArray arrayWithObject:self.index] withRowAnimation:UITableViewRowAnimationFade];

        } failure:^(NSError *error) {

            

        }];

    }else{

        

    }

}

原文地址:https://www.cnblogs.com/sunfuyou/p/6215637.html