点击cell获取当前的indexPath

2019-02-28  本文已影响0人  从前车邮马慢
//长按某一行,执行相应操作
-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer  //长按响应函数
{
    if (gestureRecognizer.state != UIGestureRecognizerStateBegan) {
        return;
    }
    CGPoint p = [gestureRecognizer locationInView:roomListTable ];
    NSIndexPath *indexPath = [roomListTable indexPathForRowAtPoint:p];//获取响应的长按的indexpath
    if (indexPath == nil){
        NSLog(@"long press on table view but not on a row");
    }
    else{
        longClickIndex = indexPath.row;
        longClickView.hidden = NO;
        view.hidden = NO;
        NSLog(@"long press on table view at row %ld", indexPath.row);
    }
}

如果一个cell中有多个按钮,要点击任何一个按钮
给cell设置tag值,然后添加代理方法实现点击不同的按钮

//UITableView的代理方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    PracticeCell *cell = [tableView dequeueReusableCellWithIdentifier:@"PracticeCell" forIndexPath:indexPath];
    cell.headLabel.text = initkeys[indexPath.row + 1];
    cell.array = keys[indexPath.row + 1];
    cell.delegate = self;
    cell.tag = indexPath.row + 1001;
    return cell;
}

//点击cell的代理方法
- (void)clickCell:(PracticeCell *)cell RowAtIndexPath:(NSInteger)integer {
    NSLog(@"++++%ld+++%ld", integer, cell.tag - 1000);
    NSArray *array = keys[cell.tag - 1000];
    NSDictionary *dic = array[integer];
    MenuViewController *controller = [[MenuViewController alloc] init];
    controller.titles = dic[@"title"];
    controller.target = dic[@"code"];
    controller.isGaokao = YES;
    [self.navigationController pushViewController:controller animated:YES];
}
上一篇下一篇

猜你喜欢

热点阅读