读取所选单元格的文本

时间:2011-02-14 12:04:47

标签: iphone objective-c xcode uitableview

我的表格中有两列:

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

    static NSUInteger const kLeftLabel =100;  
    static NSUInteger const kRightLabel=101;  

    static NSString *CellIdentifier = @"Cell";  


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];  


    if (cell == nil) {  
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];  
        CGRect leftF = CGRectMake(10, 5, 100, 30);  
        CGRect rightF = CGRectMake(120, 5, 100, 30);  

    left = [[[UILabel alloc] initWithFrame:leftF] autorelease];  
    left.tag = kLeftLabel; // assumming #define kLeftLabel 100   
    [cell.contentView addSubview:left];  

  right = [[[UILabel alloc] initWithFrame:rightF] autorelease];  
    right.tag = kRightLabel;    

    [cell.contentView addSubview:right];  

    }  
    else{  
    left= (UILabel*)[cell.contentView viewWithTag:kLeftLabel];  
    right = (UILabel*)[cell.contentView viewWithTag:kRightLabel];  
    }  

    profileDB *Obj = [appDelegate.profileArray objectAtIndex:indexPath.row];  

    left.text = Obj.profileName;  
    right.text = Obj.id;  

    return cell;  
}

我想只为选定的单元格读取右列的文本。

这可能吗?

1 个答案:

答案 0 :(得分:3)

首先,您必须找出所选的单元格。

 - (void) tableView:(UITableView*)tableview didSelectRowAtIndexPath:(NSIndexPath*)indexPath
 {
    UITableViewCell *cell = [tableview cellForRowAtIndexPath:indexPath];

    for(UILabel *lbl in [cell.contentView subviews])
    {
        if(([lbl isKindOfClass:[UILabel class]]) && ([lbl tag] == 101))
        {
            NSString *str = lbl.textLabel.text;

        }

    }
 }

如果您在单元格上添加了子视图,则可以使用其标记

来指定特定标签的文本