これは、スタック オーバーフローに関する非常に一般的な問題であることはわかっていますが、このトピックに関するさまざまなスレッドを調べても、何が起こっているのかを理解できませんでした。
セルに UITableViewCell サブクラスと UILabel を含む nib ファイルがあります。望ましい動作は、UILabel が垂直方向に拡張され、複数行のテキストを表示することです (テキストが十分に長い場合)。インターフェイスビルダーで行数プロパティを0に設定し、改行をワードラップに設定しました(インターフェイスビルダーでも)。セルを表示するとき、セルのテキストを使用して、セルの高さを sizeWithFont: ConstrainedToSize: linebreakmode: の関数に設定しています。セルの高さは正しく返されますが、UILabel は折り返されず、垂直方向にも拡張されません。
何がうまくいかないのでしょうか?
ありがとう!
**アップデート
セルの高さを計算するために使用したコードは次のとおりです。
+ (CGFloat)heightForCellGiveText:(NSString *)text
{
CGSize size = [text sizeWithFont:[self defaultMainFont] constrainedToSize:CGSizeMake(LABEL_WIDTH, CGFLOAT_MAX) lineBreakMode:NSLineBreakByWordWrapping];
return size.height + (2 * VERT_PADDING) + INTER_LABEL_PADDING;
}
インターフェイス ビルダーが、(セルではなく) ラベルの実際のサイズ変更に関係するすべてを自動的に処理できるようにしたいと考えていました。