1. ホーム
  2. iphone

[解決済み] 特定のフォントとフォントサイズの文字列の幅を計算するには?

2023-01-04 16:04:05

質問

いくつかの文字を表示するUILabelがあります。例えば、"x", "y" または "rpm" のように。ラベルのテキストの幅を計算するにはどうしたらよいでしょうか(利用可能なスペース全体を使用するわけではありません)。これは自動レイアウトのためで、UILabelの中に小さいテキストがある場合、他のビューはより大きなフレーム矩形を持つことになります。UIFontとフォントサイズが指定されたときに、テキストの幅を計算する方法はありますか?また、改行がなく、一行だけです。

どうすれば解決しますか?

その通り、様々な sizeWithFont: メソッドで行うことができます。 NSString UIKit の追加機能 . あなたの場合、最も単純な方法で十分でしょう(複数行のラベルがないので)。

NSString *someString = @"Hello World";
UIFont *yourFont = // [UIFont ...]
CGSize stringBoundingBox = [someString sizeWithFont:yourFont];

この方法にはいくつかのバリエーションがあります。例えば、改行モードや最大サイズを考慮するものもあります。