Jak mogę utworzyć multilinię UILabelw kreatorze interfejsów dla iOS? Próbowałem, UITextViewale nie do końca odpowiadało to moim potrzebom.
Jak mogę dodać multilinię (tekst) na etykiecie?
Jak mogę utworzyć multilinię UILabelw kreatorze interfejsów dla iOS? Próbowałem, UITextViewale nie do końca odpowiadało to moim potrzebom.
Jak mogę dodać multilinię (tekst) na etykiecie?
n. Zamiast tego ustaw go na 0 (rodzaj nieskończoności). Sprawdź odpowiedź vijaya poniżej.
Odpowiedzi:
Możesz użyć numberOfLineswłaściwości, która definiuje maksymalną liczbę wierszy, jaką może mieć etykieta. Domyślnie jest to 1. Ustawienie go na 0oznacza, że etykieta będzie miała nieograniczoną liczbę wierszy .
Możesz to zrobić w kodzie:
textLabel.numberOfLines = 5 // for example
Lub w programie Interface Builder:

widthz twoją wytwórnią?
Naciśnij Control+, Enteraby dodać wiersz w UILabel w Interface Builder / Storyboard.
Dzięki AppleVijay!
Również do wywołania sizeToFit, na przykład:
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];
Wysokość zostanie obliczona automatycznie.
ustaw szerokość etykiety na małą, a następnie użyj IB, aby ustawić podziały wierszy na zawijanie słów
lub używaj z takim kodem
Znalazłem rozwiązanie.
Wystarczy dodać następujący kod:
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
Ustaw liczbę linii na zero dla dynamicznych informacji tekstowych, będzie to przydatne, gdy tekst się zmienia.
Programowo (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
Korzystanie z Inetrface Builder

Uwaga: Nie jest wymagane ustawianie Minimum Font Scale, ale dobrze jest mieć minimalny współczynnik skali, aby dopasować tekst do ramki etykiety.
W systemie iOS7 (Xcode5) należy ustawić linie UILabel 0na nieograniczoną liczbę wielokrotnych danych wejściowych w scenorysie.
Najważniejsze jest, aby ustawić height of the UILabelpuszkę na linie wejścia, które zamierzasz ustawić.
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};
Jeśli ustawisz właściwość numberOfLines na 0, etykieta automatycznie dostosuje się do wymaganej liczby wierszy danego tekstu.
Walczyłem z tym przez długi czas. Chciałem tylko, aby tekst mojej etykiety pojawił się w drugiej linii. Ale cokolwiek zrobię, po prostu przepełni pole UILabel. U mnie zmiana inspektora autorealizacji rozmiaru zadziałała. Prosta naprawa.
Może komuś, kto szuka czegoś podobnego, może się przydać.