美文网首页
点击cell获取当前的indexPath

点击cell获取当前的indexPath

作者: 从前车邮马慢 | 来源:发表于2019-02-28 10:34 被阅读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];
}

相关文章

网友评论

      本文标题:点击cell获取当前的indexPath

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