0

さまざまなテキストを表示するテーブルがあるため、それに応じてセルの高さを調整する必要があります。デリゲート メソッドを使用します。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
// I ask for my content string and then I want to adjust the cell accordingly:
CGSize maximumSize = CGSizeMake(defaultCell.textLabel.frame.size.width, CGFLOAT_MAX);
GSize neededSize = [contentString sizeWithFont:defaultCell.textLabel.font constrainedToSize:maximumSize lineBreakMode:defaultCell.textLabel.lineBreakMode];
CGFloat cellHeight = neededSize.height +15;
return cellHeight;

デフォルトのセルは、ストーリーボードのプロトタイプ セルです。これを viewDidAppear デリゲート メソッドで初期化して、プロトタイプ uitableviewcell に簡単にアクセスできるようにします。この方法では、ストーリーボードのフォントなどを変更するだけで済みます。

私が抱えている問題は、関数 sizeWithFont: ConstrainedToSize: lineBreakMode: が正確な答えをくれないことです。次の行に非常に短い単語が数個しかない場合、結果が 1 行低すぎます。

それがなぜなのか、それを回避する方法を知っている人はいますか?

4

1 に答える 1

0

ビューをロードするときとレンダリングするときのセルの幅が異なる場合があります。私の暗闇の中でのショットは、あなたが作業していると思うセルフレームが、レンダリングされているのと同じセルフレームではないということです.

于 2013-04-06T23:20:12.933 に答える