无法在UITableViewCell中访问UILabel

时间:2009-10-03 11:34:54

标签: iphone uitableview uilabel

我无法访问UITableViewCell中的内容,我将其放在我的主.xib文件中。

该标签已连接到IBOutlet servicesCell。

表视图单元格中的Label通过IBOutlet serviceLabel连接。

在运行时,我没有收到我正在向该标签提供的文本。

以下是我的示例代码。

static NSString *ServiceIdentifier = @"ServiceIdentifier";

UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:ServiceIdentifier];

if(cell1 == nil) {
    [[NSBundle mainBundle] loadNibNamed:@"servicesCell" owner:self options:nil];
    cell1 = servicesCell;
}

// label access
serviceLabel = (UILabel *)[cell1 viewWithTag:1];
serviceLabel.numberOfLines = 3;
serviceLabel.lineBreakMode = UILineBreakModeWordWrap;
[serviceLabel setTextAlignment:UITextAlignmentLeft];
[serviceLabel setText:@"Testing String"];

任何人都有任何想法,请帮助..

提前致谢..

2 个答案:

答案 0 :(得分:1)

你说你的Cell在你的主XIB文件中,但是我认为它的单元实际上是在“servicesCell.xib”中,对吗?

我假设您从"Loading Custom Table-View Cells from Nib Files"开始。这段代码类似于Apple的例子,所以我假设你从那里开始。如果你只是从某个地方复制了这段代码而没有理解它,请先阅读该文档。

您应该在调试器中浏览此代码,并确保将所有内容设置为您认为应该设置的内容。 “没有发生”的最常见原因是你发送消息给nil,所以我打赌你的一个变量实际上是零。看看这段代码,最有可能的罪魁祸首是在IB中实际连接某些东西(这是使用NIB时nil对象的最常见原因;仔细检查你真的做了它),或者那个您尚未为标签指定预期的标签1。

答案 1 :(得分:0)

将UITableViewCell放在它自己的笔尖中。