IOSのインターフェイスビルダーで複数行UILabel
を作成するにはどうすればよいですか? UITextView
を試してみましたが、私のニーズにはまったく合いませんでした。
ラベルに複数行(テキスト)を追加するにはどうすればよいですか?
maximumラベルに含めることができる行数を定義するnumberOfLines
プロパティを使用できます。デフォルトでは、1
です。 0
に設定すると、ラベルの無制限の行になります。
コードでそれを行うことができます:
textLabel.numberOfLines = 5 // for example
または、Interface Builderで:
ヒット Control+Enter Interface Builder/StoryboardのUILabelに行を追加します。
AppleVijayに感謝します!
また、次のようにsizeToFitを呼び出します。
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];
高さは自動的に計算されます。
uは小さく必要なのでラベルの幅を設定し、IBを使用して改行をワードラップに設定します
またはこのようなコードで使用します
私は解決策を見つけました。
次のコードを追加するだけです。
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
ダイナミックテキスト情報の行数をゼロに設定すると、テキストが変化する場合に役立ちます。
プログラム(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
を設定する必要はありませんが、ラベルフレームにテキストを収めるために最小のスケール係数を設定するのは良いことです。
プレーンのUILabelsがlinesフィールドを0に設定すると、IBに行数が表示されます。ラベルに指定されたスペースに従って複数の行を作成します。
IOS7(Xcode5)では、UILabelの行を0
に設定して、ストーリーボードで無制限に複数入力できるようにします。
最も重要なのは、height of the UILabel
が設定しようとしている入力行を保持できるように設定することです。
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};
NumberOfLinesプロパティを0に設定すると、ラベルは指定されたテキストの必要な行数に自動的に調整されます。