Gibt es eine Möglichkeit, mehrere Textzeilen in UILabel
wie in der UITextView
oder sollte ich stattdessen die zweite verwenden?
Antworten
Zu viele Anzeigen?Stellen Sie den Zeilenumbruchmodus auf Wortumbruch und die Anzahl der Zeilen auf 0
:
// Swift
textLabel.lineBreakMode = .byWordWrapping
textLabel.numberOfLines = 0
// Objective-C
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
// C# (Xamarin.iOS)
textLabel.LineBreakMode = UILineBreakMode.WordWrap;
textLabel.Lines = 0;
Alte Antwort wiederhergestellt (als Referenz und für Entwickler, die iOS unter 6.0 unterstützen möchten):
textLabel.lineBreakMode = UILineBreakModeWordWrap;
textLabel.numberOfLines = 0;
Nebenbei bemerkt: beide Enum-Werte führen zu 0
sowieso.
Die beste Lösung, die ich gefunden habe (für ein ansonsten frustrierendes Problem, das im Framework hätte gelöst werden sollen), ist ähnlich wie die von vaychick.
Setzen Sie einfach die Zeilenzahl auf 0, entweder in IB oder im Code
myLabel.numberOfLines = 0;
Dadurch werden die benötigten Zeilen angezeigt, aber die Beschriftung wird neu positioniert, so dass sie horizontal zentriert ist (so dass eine 1- und 3-zeilige Beschriftung in ihrer horizontalen Position ausgerichtet ist). Um das zu beheben, fügen Sie hinzu:
CGRect currentFrame = myLabel.frame;
CGSize max = CGSizeMake(myLabel.frame.size.width, 500);
CGSize expected = [myString sizeWithFont:myLabel.font constrainedToSize:max lineBreakMode:myLabel.lineBreakMode];
currentFrame.size.height = expected.height;
myLabel.frame = currentFrame;
- See previous answers
- Weitere Antworten anzeigen