如何从tableviewcell中的标签获取价值?

时间:2011-11-09 04:07:38

标签: iphone

我有一个包含一些文本的tableview,我在tableviewcell里面有一个标签作为子视图,在标签中还有一些值。我的问题是,当我点击要获取标签值的单元格时,我知道如何在单击单元格时获取单元格值,但我需要获取标签值,我获取表格单元格值的代码是

NSString *localStringValue;
localStringValue = [tableView cellForRowAtIndexPath:indexPath].textLabel.text; 

我将其显示在textview textview.text = self.localStringValue;中 我的标签名称是chapterandverse,我需要实现此标签而不是textlabel.text。 我添加localStringValue = [tableView cellForRowAtIndexPath:indexPath].chapterandverse.text; 但是这个代码我得到了错误。请帮我这样做。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

有两种主要方法可以做到这一点:

  1. 您可以为chapterandverse标签指定tag值。在Interface Builder中,在同一页面上有一个Tag属性,您可以在其中设置其他属性,如Text。如果您是以编程方式进行的,chapterandverse.tag = 1;。然后,您需要通过标记值引用标签,例如:

    localStringValue = [(UILabel *)[[tableView cellForRowAtIndexPath:indexPath]
                                    viewWithTag:1] text];
    
  2. 您可以通过@property引用自定义表格视图单元格类中的标签来实现此目的。您似乎已经尝试过这样做,但请注意,如果您致电[cell addSubview:chapterandverse]意味着您可以稍后说cell.chapterandverse。为了使其正常工作,您需要创建UITableViewCell的子类并向其添加以下声明:

    @property (nonatomic, retain) IBOutlet UILabel *chapterandverse;
    

    然后在单元格的.m文件中合成它:

    @synthesize chapterandverse;
    

    然后,您可以将放置在Interface Builder中的标签连接到视图上的chapterandverse插座,并按照cell.chapterandverse的方式引用它。但是,如果以编程方式创建它,则需要在使用之前初始化UILabel

    - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
    {
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
        if(self != nil)
        {
            CGRect labelFrame = CGRectMake(x, y, width, height); // set this properly
            self.chapterandverse = [[UILabel alloc] initWithFrame:frame];
            [self.view addSubview:self.chapterandverse];
        }
    
        return self;
    }