1. ホーム
  2. アイオス

[解決済み】テキストに応じてUILabelの高さを調整する。

2022-03-26 16:47:09

質問

以下のテキストが UILabel (ダイナミックテキストの長い行)。

<ブロッククオート

エイリアンの数が圧倒的に多いので、ゴミ箱や柱、車、瓦礫などに身を隠すなど、終末的な世界を上手に利用することが必要です。

のサイズを変更したい。 UILabel's の高さを調整し、テキストが収まるようにしました。私は、以下のプロパティを使用しています。 UILabel で、中のテキストが折り返されるようにします。

myUILabel.lineBreakMode = UILineBreakModeWordWrap;
myUILabel.numberOfLines = 0;

方向性が間違っていたら教えてください。ありがとうございます。

どのように解決するのですか?

sizeWithFont constrainedToSize:lineBreakMode: を使用する方法です。使い方の例を以下に示します。

//Calculate the expected size based on the font and linebreak mode of your label
// FLT_MAX here simply means no constraint in height
CGSize maximumLabelSize = CGSizeMake(296, FLT_MAX);

CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font constrainedToSize:maximumLabelSize lineBreakMode:yourLabel.lineBreakMode];   

//adjust the label the the new height.
CGRect newFrame = yourLabel.frame;
newFrame.size.height = expectedLabelSize.height;
yourLabel.frame = newFrame;