1

UILabel と UITextView の両方に同じテキスト (文字列 "SnellRoundhand"、Snell Roundhand Bold フォント、ポイント サイズ 21) があります。UITextView のテキストは正しく表示されますが、UILabel のテキストは左右で途切れています。ラベルのテキストを正しく表示するにはどうすればよいですか?

https://twitter.com/dandelarosa64/status/307549623717867520/photo/1

いくつかのメモ:

  • ラベルのフレームを拡大しても、テキストの右側ではカットオフの問題が解決されるが、左側では解決されない可能性があるため、機能しません。
  • 安い方法でテキストを中央に配置することはできません。テキストは、現在の配置にとどまらなければなりません。
  • すべてを UITextViews に変更できない理由は、アプリがバックグラウンドで何らかの処理を行い、UITextView をインスタンス化するたびにクラッシュするためです。代わりに UILabel を使用してテキストをレンダリングすることで、問題を回避できることを願っています。
4

3 に答える 3

3

iOS 6 の UILabel の非常に優れた新機能は、属性付き文字列をサポートすることです。属性付き文字列には、段落余白を含めることができます。したがって、文字列にマージンを追加して、ラベルの端と文字列の描画の間に余分なスペースを確保できます。

私の本のこのセクションには、UILabel で描画された文字列にマージンを追加するサンプル コードがあります。

http://www.apeth.com/iOSBook/ch23.html#_attributed_strings

iOS 6 より前のシステムで実行したい場合は、UILabel をサブクラス化して、このコード (これも私の本から) に示すように、ラベルの端からテキストを強制的に挿入して描画することができます。

- (void)drawTextInRect:(CGRect)rect {
    [super drawTextInRect:CGRectInset(rect, 5.0, 5.0)];
}
于 2013-03-01T18:05:09.867 に答える
0

iOS 6 では、UITextView の両側にマージンがあり、コンテンツのインセットを調整して、テキストがそれらのマージンを使用しないようにすることができます。

[textView setContentInset:UIEdgeInsetsMake(-8, -8, -8, -8)];

于 2013-08-08T15:46:56.367 に答える