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 に答える