Interface BuilderのiOSマルチラインラベル


131

UILabeliOSのインターフェイスビルダーで複数行を作成するにはどうすればよいですか?私は試しましたUITextViewが、それは私のニーズに完全には合いませんでした。

ラベルに複数行(テキスト)を追加するにはどうすればよいですか?


idがニーズに合わなかった理由を説明できますか?読み取り専用のTextViewは、複数行のラベルと同じです。
Shreesh

ハイライトされたテキストの色のプロパティがないようです。
Samuli Lehtonen、2011

7
この質問にアクセスする他の人は、5またはに設定した行の受け入れられた回答に従ってはいけませんn。代わりに0(無限のソート)に設定します。以下のvijayの答えを確認してください。
GoodSp33d 2014

回答:


178

ラベルに含めることができる最大行数numberOfLinesを定義するプロパティを使用できます。デフォルトではです。に設定すると、ラベルの行数無制限になります10

あなたはコードでそれを行うことができます:

textLabel.numberOfLines = 5 // for example

またはInterface Builderで:


私が試したところ、ラベルを書いているときに機能しますが、Enterキーを押して受け入れると、すべてが1行で表示されます。
Samuli Lehtonen、2011

3
そしてwidth、あなたのレーベルは何ですか?
akashivskyy

8
わかりました、私は今それを得ました、高さを増やしました、それはそれを作りました。ありがとう!
Samuli Lehtonen、2011

線を無制限にするには、線を0に設定できます。
paulmelnikow 2013年

2
複数行のラベルをIBに入力する方法を説明するこの回答もご覧ください:stackoverflow.com/a/992511/893113
paulmelnikow

117

ヒットControl+ EnterInterface Builderを/ストーリーボードでUILabelに行を追加します。


2
ありがとう、それが私がやろうとしていたことです:)
mcont '06 / 06/21

これが解決策です!
SunnySonic 2015年

14
良いですね。しかし、「Q」は必要ないのではないでしょうか
Rendel '19

1
@Oliver LogicそれはXcodeを終了しません...あなたは正しく読んでいません。彼はCONTROL + Q + ENTER(CMD + Qではなく)と言った。
gaskbr 2016

1
@LogicはXcodeを終了しません...あなたは正しく読んでいません。彼はCONTROL + Q + ENTER(CMD + Qではなく)と言った。
gaskbr 16

47

AppleVijay、ありがとう!

次のように、sizeToFitを呼び出すこともできます。

label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];

高さは自動的に計算されます。


11
注:UILineBreakModeWordWrapはiOS6で非推奨になりました。[label setLineBreakMode:NSLineBreakWordWrapping]を使用します。代わりに。
John Feagans、2013

5
「By」がありません。label.lineBreakMode = NSLineBreakByWordWrapping
user1872384

1
UILineBreakModeWordWrapの代わりにNSLineBreakMode.ByWordWrappingを使用して迅速に
Deb

12

必要に応じてラベルの幅を小さく設定してから、IBを使用して改行をワードラップに設定します

またはこのようなコードで使用する

解決策を見つけました。

次のコードを追加するだけです。

textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;

5

動的テキスト情報の行数をゼロに設定します。テキストが変化する場合に役立ちます。

プログラム的に(Swift 3)

var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame

Inetrface Builderの使用

ここに画像の説明を入力してください

注:を設定する必要はありませんMinimum Font Scaleが、テキストをラベルフレームに合わせるための最小の倍率を設定しておくと便利です。


2

プレーンUILabelsが行フィールドを0に設定すると、行数がIBに表示されます。ラベルに指定されたスペースに従って複数の行を作成します。


1

iOS7(Xcode5)0では、ストーリーボードでの無制限の複数入力のためにUILabelの行を設定します。
最も重要なのは、設定するheight of the UILabel入力の行を保持できるように設定することです。


0
textLabel.lineBreakMode = UILineBreakModeWordWrap;

textLabel.numberOfLines = 0;

CGSize size =  [[[arrNewsFeed objectAtIndex:row] objectForKey:@"c"]  sizeWithFont:[UIFont systemFontOfSize:14.0]  constrainedToSize:CGSizeMake(188, CGFLOAT_MAX)
                                                                     lineBreakMode:NSLineBreakByTruncatingTail];

textLabel.frame = (CGRect){.origin = cell.lblNewsDescription.frame.origin, .size = size};

0

numberOfLinesプロパティを0に設定すると、ラベルは指定されたテキストの必要な行数に自動的に調整されます。


0

私は長い間これに苦労してきました。ラベルテキストを2行目に表示したかっただけです。しかし、私が何をしても、UILabelボックスがオーバーフローするだけです。私にとっては、サイズインスペクタで自動サイズ変更を変更することができました。簡単な修正。

同様の何かを探している人が役に立つと思うかもしれません。


-2

X-Code 7.2の場合

  1. -UILabelを選択します

  2. -属性インスペクター

  3. -テキスト-属性付きを選択

この後、ラベルに追加できる属性がいくつか表示されます。この属性には、数も表示されます。ラベルを複数行にします。

複数行のUILabelのXコードイメージ


プレーンUILabelsを使用してIBに行数が表示されます。
グラハム・リー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.