Uitableview 表格单元格中的Textlabel超过详细信息文本

Uitableview 表格单元格中的Textlabel超过详细信息文本,uitableview,ios4,Uitableview,Ios4,我创建了一个具有值1单元格样式的表。因为几乎所有(主)文本标签都很长,所以我做了 cell.textLabel.numberOfLines = 2; 并增加了行的高度。现在,当(主)文本超过整行的宽度时,它会换行成两行,这样就可以了(请参见我截图中的中间一行)。但是,当文本较短时,它根本不会换行,即使它超出了其面积,并且为详细文本留下很少或没有空间(请参见其他行——每个单元格中的详细文本都设置为“12345 Kč”)。我想在这些单元格中的文本被包装成2行,如果他们会留下一点空间,否则的细节文本

我创建了一个具有值1单元格样式的表。因为几乎所有(主)文本标签都很长,所以我做了

cell.textLabel.numberOfLines = 2;
并增加了行的高度。现在,当(主)文本超过整行的宽度时,它会换行成两行,这样就可以了(请参见我截图中的中间一行)。但是,当文本较短时,它根本不会换行,即使它超出了其面积,并且为详细文本留下很少或没有空间(请参见其他行——每个单元格中的详细文本都设置为“12345 Kč”)。我想在这些单元格中的文本被包装成2行,如果他们会留下一点空间,否则的细节文本。我不想调整字体大小或缩短文本--行中有足够的文本空间。你知道什么简单的解决办法吗?(如果没有必要,我不喜欢创建特殊标签等。)


不幸的是,我甚至没有找到一个简单的解决方案(例如设置属性),即使是在。因此,我必须创建自己的标签,但我尽可能多地使用原始单元格(例如,我使用了
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;
}
希望这对其他人也有帮助