6

UILabelをシステムボールド14.0のフォント、最小フォントサイズ12で設定しています。ラベルを7行に塗りつぶしたいのですが、大きすぎる場合は、テキストを12ピクセルに縮小します。この場合、それ以上になる可能性があります。 7行よりも多く、それでも元のフレームに収まります。

行数を7と0に設定してみました。どちらの方法でも、テキストはデフォルトのサイズ(14)で7行を埋め、末尾を切り捨てます。より多くのテキストを表示できるように、テキストを12pxに縮小するにはどうすればよいですか?

(もっとコードを投稿しますが、これらのほとんどはIBで設定されています)。

編集:自動縮小オプションを「最小フォントサイズ」に設定し、サイズを12にしました。これを8のような明らかなものに設定しても、縮小は発生しません。

4

4 に答える 4

5

確認する

sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:

[labelText sizeWithFont:labelFont 
                  minFontSize:12.0 
                  actualFontSize:&returnFontSize 
                  forWidth:frame.size.width 
                  lineBreakMode:UILineBreakModeWordWrap];

詳細については、Apple のドキュメントを参照してくださいNSString。には他にも便利なメソッドがいくつかありますNSString

更新: 編集に基づいて、問題の回避策は次のプロパティを設定することです。

label.adjustsFontSizeToFitWidth = YES;
于 2012-11-27T23:46:53.643 に答える
4

これを使用.adjustsFontSizeToFitWidth=YESして、ラベルの幅に合わせてフォント サイズを調整できます。たとえば、ラベルがnumberOfLines=2あり、テキストが長すぎる場合、ラベルのフォント サイズはすべてのテキストに収まるように縮小されます。

于 2015-02-16T11:31:42.087 に答える
0

したがって、明らかに自動縮小、最小フォント サイズなどは、1 行の UILabel でのみ機能します。IBまたはUILabel APIでこれを処理できればいいのですが、ここで解決策を見つけました。

于 2012-11-28T00:32:08.483 に答える