如何在UITableView中获取选定的indexPath.section和indexPath.row值?

时间:2013-06-12 07:08:20

标签: iphone uitableview row tableview

我在tableview中插入了2个部分和2个行,然后我尝试使用UITapGestureRecognizer获取选定的部分和行值,但我必须只获得indexPath.section值,我想要部分和行值。有可能吗?请帮帮我

先谢谢

我试过了:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    UITableViewCell *cell=[[UITableViewCell alloc]  initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    cell.selectionStyle = UITableViewCellSelectionStyleGray;

//    Add the PatientName Label

    UILabel *cellTitle=[[UILabel alloc]initWithFrame:CGRectMake(100, 7, 300, 30)];
    cellTitle.userInteractionEnabled = YES;
    cellTitle.tag = indexPath.section;
    [cellTitle setBackgroundColor:[UIColor clearColor]];
    [cellTitle setFont:[UIFont fontWithName:@"Helvetica" size:14]];
    [cellTitle setText:[[cellArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]];
    [cell.contentView addSubview:cellTitle];

    UITapGestureRecognizer *labelTap = [[UITapGestureRecognizer alloc] init];
    [labelTap addTarget:self action:@selector(viewPatient:)];
    [labelTap setDelegate:nil];
    [labelTap setNumberOfTapsRequired:1];
    [cellTitle addGestureRecognizer:labelTap]; // cellTitle add here
    [labelTap release];
}

-(void)viewPatient:(id)sender
{
    UITapGestureRecognizer *lSender = sender;
    UILabel *lObjLabel = (UILabel *)[lSender view];
    NSLog(@"tag:%d",lObjLabel.tag); // only get indexpath.section value
}

2 个答案:

答案 0 :(得分:3)

使用此代码..

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[sender tag] inSection:
[[sender superview] tag]];

答案 1 :(得分:0)

写下这一行..

[cellTitle setText:[[cellArray objectAtIndex:indexPath.row] objectAtIndex:indexPath.section]];

而不是

[cellTitle setText:[[cellArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]];