我有一个UITableView,我想用它做非常普通的事情,例如在每一行中显示文本。

为此,我实现了通常的委托(delegate)方法tableView:cellForRowAtIndexPath:。这被称为预期。根据文档,我应该创建一个UILabel对象,并将其设置为新UITableCell上的textLabel属性。

但是我崩溃了,无法识别setTextLabel:的选择器-编译器也适时警告我它不存在。存在不推荐使用的方法setText:,并且可以正常工作(带有警告)。我确实似乎是在3.0库的基础上构建的(在其他目标的下拉列表中我没有选择。所以我很困惑。我缺少什么?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell * cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease];
    UILabel * label = [[[UILabel alloc] init] autorelease];
    [label setText:@"Foo."];
    [cell setTextLabel:label];   // BOOM.
    return cell;
}

在Swift中,它可能还会显示错误:

最佳答案

textLabel属性标记为只读。您必须改为设置textLabel.text:
cell.textLabel.text = @"some Text";

关于iphone - 为什么我的UITableViewCell不具有textLabel属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2133789/

10-14 19:56