0

前面:我是菜鸟。

我有一个方法可以在 UITableViewCell 中的 textLabel 对象上设置文本。相关的代码片段是:

NSLog(@"BEFORE .textLabel.text: %@", _addWarmupActivityTableViewCell.textLabel.text);
NSLog(@"BEFORE activity.name: %@", theSelectedActivityToDisplayAndSave.name);
_addWarmupActivityTableViewCell.textLabel.text = theSelectedActivityToDisplayAndSave.name;
NSLog(@"AFTER .textLabel.text: %@", _addWarmupActivityTableViewCell.textLabel.text);

第一次设置时,它可以工作。您可以通过此日志记录看到:

[12231:c07] BEFORE .textLabel.text: (null)
[12231:c07] BEFORE activity.name: Animal Movements
[12231:c07] AFTER .textLabel.text: Animal Movements

然后,在任何后续调用它之后,它都会返回一个 null,如以下日志记录所示:

[12231:c07] BEFORE .textLabel.text: (null)
[12231:c07] BEFORE activity.name: Animal Movements
[12231:c07] AFTER .textLabel.text: (null)

我必须承认我有点难过。我在其他帖子中读到(可能是)任何时候修改 textLabel 它实际上都会创建一个新的 UILabel 对象。但是,对我来说,这仍然不能解释为什么在我尝试设置它之后它是(空)一行?

任何指向正确方向的指针将不胜感激。

干杯。

4

1 回答 1

0

您没有显示分配/出列单元格的代码,因此很难说-我假设您在列出的内容之前将其分配在某个地方。

你会有这样的东西:

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
    if (!cell)
    {
        cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier:@"cell"];
    }
    cell.textLabel.text = theSelectedActivityToDisplayAndSave.name; // wherever you get this from
    return cell;
}

这看起来与您使用的方法相似吗?

我想我要看的是单元格是否被正确分配。

于 2013-06-12T05:46:13.517 回答