0

我创建了一个值为 1 单元格样式的表格。由于几乎所有(主要)文本标签都相当长,我做到了

cell.textLabel.numberOfLines = 2;

在其所有单元格上并增加行的高度。现在,当(主要)文本超过行的宽度时,它会换成 2 行并且没关系(请参见我的屏幕截图中的中间行)。但是,当文本较短时,它根本不会换行,即使它超出了它的区域并且为详细文本留下很少或没有空间(请参阅其他行 - 详细文本在每个行中设置为“12345 Kč”细胞)。我希望这些单元格中的文本被包装成 2 行,否则它们会为详细文本留下很小的空间。我不想调整字体大小或缩短文本 - 行中有足够的空间放置文本。你知道任何简单的解决方案吗?(如果没有必要,我不喜欢创建特殊标签等。)

在此处输入图像描述

4

1 回答 1

0

不幸的是,即使在文档中,我也没有找到简单的解决方案(例如设置属性)。所以我不得不创建自己的标签,但我尽可能地利用了原始单元格(例如我使用detailTextLabel了 ),并尝试将我的标签设计得尽可能接近原始单元格。这是我的代码:

#define MASTER_LABEL_TAG 100

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UILabel *masterLabel;
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
        masterLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0, 8.0, 195.0, 48.0)];
        masterLabel.tag = MASTER_LABEL_TAG;
        masterLabel.font = [UIFont boldSystemFontOfSize:17];
        masterLabel.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.0];
        masterLabel.numberOfLines = 2;
        [cell.contentView addSubview:masterLabel];
    }
    else
    {
        masterLabel = (UILabel *) [cell.contentView viewWithTag:MASTER_LABEL_TAG];
    }
    masterLabel.text = @"Something goes here";
    return cell;
}

希望这对其他人也有帮助。

于 2012-09-11T13:32:50.547 回答