5

UILabels私の習慣には3つありますUITableViewCell。一部UILabelsが空になる可能性があります(label.text == @""

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


        NSString *key = [[keysArray objectAtIndex:indexPath.section] description];

        UILabel *nameLabel = (UILabel *)[cell viewWithTag:100];
        namelabel.text = @"Label 1";

        UILabel *locationLabel = (UILabel *)[cell viewWithTag:101];
        location.text = @"Label 2";

        UILabel *timeLabel = (UILabel *)[cell viewWithTag:102];
        timeLabel.text = @"";

        return cell;
}

UILabels自動レイアウトを使用して、空でないすべてのセルを垂直方向に中央揃えにするにはどうすればよいですか?

これは、3つのラベルでどのように見えるかです

これは、3つのラベルでどのように見えるかです。

いずれかUILablesが空の場合の外観

<code> UILables</code>の1つが空の場合の外観

そして、これは私がそれをどのように見せたいかです:

そして、これは私がそれをどのように見せたいかです:

4

1 に答える 1

3

これを実現するのは難しいですが、簡単な近道は、セルの高さ全体を埋めるように制約された3行のテキストで代わりに単一のラベルを使用することです。その後、ラベルはその内容を垂直方向に自動中央揃えします。

セルには3つのラベルではなく3つの文字列プロパティがあり、セッターは最終的な文字列を作成し(\n新しい行に使用)、ラベルのテキストを設定します。

テキストの各行のスタイルが異なる場合は、属性付きの文字列を使用できるため、問題ありません。

于 2013-02-10T09:26:37.703 に答える