即使使用UITableViewCellStyleSubtitle,detailTextLabel也不显示

时间:2013-11-04 01:41:39

标签: ios objective-c

我正在尝试在我的表格视图中显示一个副标题,但由于某种原因它没有出现。我将单元格的样式设置为UITableViewCellStyleSubtitle,这不是问题所在。这是相关的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }

    NMADRestaurant *restaurant = [self.restaurants objectAtIndex:indexPath.row];
    cell.textLabel.text = [restaurant name];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    CLLocation *restaurantLocation = [restaurant location];
    CLLocationDistance distance = [currentLocation distanceFromLocation:restaurantLocation];
    NSString *distanceString = [NSString stringWithFormat:@"%.1f km",(distance/1000)];
    cell.detailTextLabel.text = distanceString;

    return cell;
}

如果我是NSLog distanceString,它会正确显示。但是当我使用NSLog(@“Label%@”,cell.detailTextLabel.text)时,“Label(null)”就会出现在日志中。

2 个答案:

答案 0 :(得分:1)

起初它也不适用于我,我不得不去我的故事板,然后选择我的原型单元格。之后,我转到属性检查器,然后将“样式”从“自定义”更改为其中一个详细选项,然后显示正常。

这一行:

CLLocationDistance distance = [currentLocation distanceFromLocation:restaurantLocation];

将距离声明为浮点数?我不确定你得到了什么类型的价值观,所以我不得不做一个

浮动距离= 0.5;

能够测试它,但也许它是空的,你把它称为浮动而不是吗?

祝你好运

答案 1 :(得分:1)

嗨,请注意:我的英语不好。

你的init或viewDidLoad方法中有这个吗?

[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"abc"];

只需评论并再试一次。 (我认为在第一次创建单元格时,由于此代码,它们不会应用样式字幕,因此它使用默认单元格样式。)