2009-08-24 13 views
1

私はNSStringを持っていて、それを長方形に収めたいと思っています。矩形は指定されたサイズを持ち、width = 150、height = 30と言うことができます。文字列が短く、文字が1つしかない場合、矩形の高さになる可能性があります。具体的には、大きなフォントサイズを持つことができます。しかし、文字列の文字数が多すぎて矩形の境界を超えると、文字列は小さくなる必要があります。より具体的には、フォントサイズが小さくなり、矩形の境界を超えないようにする必要があります。コアグラフィックスを邪魔することなくこれを行う方法はありますか?文字列を四角形に合わせる方法は?

何らかの理由で、UILabelのadjustsFontSizeToFitWidthプロパティは効果がありません。文字通りスペースがあってもテキストは小さくなります。

私はその

label.adjustsFontSizeToFitWidth = YES; 

に設定しましたが、何も起こりません。それを行う別の方法があることを願っています...

+0

小さいとはどういう意味ですか?文字列を切り捨てることを意味しますか? – fbrereto

+0

小さいフォントサイズ/切り捨てなし。質問をより詳細に更新しました –

答えて

6

UILabelにはいくつかの部分がありますが、まず文字列を切り捨てるか、フォントサイズを小さくするかを知る必要があります矩形。

どちらの場合も、UILabelnumberOfLinesプロパティを0に設定し、必要に応じてラベルを折り返すことができます。次に、UILabelframeを、お望みの四角形と一致するように設定します。

  • 切り捨て:あなたが探している切り捨て動作に応じてUILineBreakModeClipUILineBreakModeHeadTruncationUILineBreakModeTailTruncation、またはUILineBreakModeMiddleTruncationlineBreakModeプロパティを設定し、そこから次の2つのパスのいずれかを取ります。
  • サイズ変更:ご希望に応じて、をUILineBreakModeWordWrapまたは `UILineBreakModeCharacterWrap 'に設定してください。次に、適切なフォントサイズを見つけるためにループを入力する必要があります。合理的なフォントサイズ(例えば、12)でスタートし、:
    • UILabelのためにそのサイズ
    • コール- (void) sizeToFitと一致するUIFontUILabelfontプロパティを設定します。
    • UILabelためframeを確認してください:
      • フレームが大きいにまだある場合、フレームはあなたがそれがする必要がある範囲内に収まる場合は、あなたが
      • をやっている、フォントのサイズをドロップすると、あなたはワますので、あなたは忘却の彼方にテキストを圧迫していないことを確認をしたいでしょう後者のオプションについてループ

を繰り返しフォントサイズに最小サイズの上限を設定します。

詳細については、UILabelおよびUIFontのドキュメントを参照してください。

4

adjustsFontSizeToFitWidthは、フォントサイズをに設定します。は無効です。

UILabelのフォントを適切な大きさに設定すると、必要に応じてUILabelが縮小します。

0
  1. ラベルのフォントサイズを希望する標準サイズに設定します。
  2. セットラベル最小フォントサイズ 可能な最小フォント (minimumFontSize性)
  3. に設定adjustsFontSizeToFitWidth YESします。

あなたが複数の行が必要な場合は、他のポスターが述べたように、0にlineCountを設定します。

関連する問題