我有一个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/