さまざまなテキストを表示するテーブルがあるため、それに応じてセルの高さを調整する必要があります。デリゲート メソッドを使用します。
- (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 行低すぎます。
それがなぜなのか、それを回避する方法を知っている人はいますか?