web-dev-qa-db-ja.com

iOSで複数行のUILabelを行う方法は?

タイトル(UILabel)を動的に設定しています。時々、長すぎてIOS幅に収まるようにフォントを絞ります。同じフォントサイズを使用して複数行を実行する方法はありますか?

34
HardCode

adjustsFontSizeToFitWidth をNOに、 numberOfLines を0に設定します。

numberOfLines Docs

このプロパティは、ラベルのテキストを境界矩形に合わせるために使用する最大行数を制御します。このプロパティのデフォルト値は1です。最大制限を削除し、必要な数の行を使用するには、このプロパティの値を0に設定します。

このプロパティを使用してテキストを制限すると、適切な改行モードを使用して、最大行数およびラベルの境界矩形内に収まらないテキストが切り捨てられます。

SizeToFitメソッドを使用してレシーバーのサイズを変更する場合、サイズ変更ではこのプロパティに格納されている値が考慮されます。たとえば、このプロパティが3に設定されている場合、sizeToFitメソッドはレシーバーのサイズを変更して、3行のテキストを表示するのに十分な大きさにします。

さらに、デフォルトの lineBreakMode が適切な場合を除き、 UILineBreakModeWordWrap を指定することもできます。

76
Sam

以下のようにUILabelプロパティを使用します。

textLabel.lineBreakMode = NSLineBreakByWordWrapping;  
textLabel.numberOfLines = 0;
5
Sagar Surani

はい、numberOfLinesを0に設定し、.lineBreakModeからUILineBreakModeWordWrapまで、またはラベルがIBで定義されている場合は同等のもの。

4
jrturton

LineBreakモードを使用してTruncate Tailを使用し、setNumberOfLinesを0に設定しただけです。ラベルは複数行になりました。

2
Waqas