Wie kann ich in Interface Builder für iOS einen mehrzeiligen UILabel
erstellen? Ich habe das UITextView
ausprobiert, aber es entsprach nicht meinen Bedürfnissen.
Wie kann ich mehrzeiliges (Text) im Etikett hinzufügen?
Sie müssen eine numberOfLines
-Eigenschaft zuweisen. Sie können es per Code tun:
textLabel.numberOfLines = 5; // for example
Oder über den Interface Builder:
Schlagen Control+Enter Hinzufügen einer Zeile in UILabel in Interface Builder/Storyboard.
Vielen Dank AppleVijay!
Auch um sizeToFit aufzurufen, so
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];
Die Höhe wird automatisch berechnet.
legen Sie die Breite des Labels so fest, wie Sie es benötigen. Verwenden Sie IB, um Zeilenumbrüche in den Zeilenumbruch zu setzen
oder verwenden Sie diesen Code
Ich habe eine Lösung gefunden.
Man muss nur den folgenden Code hinzufügen:
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
Legen Sie die Anzahl der Zeilen für dynamische Textinformationen auf Null fest. Dies ist nützlich, wenn Ihr Text variiert.
Programmatisch (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 verwenden
Hinweis: Es ist nicht erforderlich, Minimum Font Scale
einzustellen, aber Nizza, wenn der Skalierungsfaktor minimal ist, um Text in den Etikettenrahmen einzufügen.
Zeilenanzahl ist in IB mit einfachen UILabels Zeilenzeilenfeld als 0 sichtbar. Es werden mehrere Zeilen entsprechend dem angegebenen Platz für das Label erstellt.
In iOS7 (Xcode5) sollten Sie die Zeilen von UILabel auf 0
setzen, um eine unbegrenzte Mehrfacheingabe im Storyboard zu erhalten.
Das Wichtigste ist, dass height of the UILabel
die Zeilen der Eingabe enthält, die Sie festlegen möchten.
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};
Wenn Sie die numberOfLines-Eigenschaft auf 0 setzen, wird das Label automatisch an die erforderliche Zeilenanzahl des angegebenen Textes angepasst.