2016-07-11 13 views
1

Ich habe UILabel, die einzelne Zeile anzeigen, wenn es Platz dafür haben.Force UILabel zum Anzeigen von 2 Zeilen

Allerdings muss ich es immer 2 Zeilen angezeigt zwingen, selbst wenn es genug Platz für die Anzeige ist es in 1 Zeile.

Robuste Art und Weise ist die Einschränkung des rechten Abstands zu reduzieren und diesen Zustand auf allen verfügbaren Geräten zu überprüfen, aber vielleicht gibt es einen einfacheren Weg?

Um klar sein, ich will dies: enter image description here

sieht wie folgt aus: enter image description here

Wie ich bereits erwähnt, Etiketten jetzt durch Einschränkungen Super binded.

+0

müssen Sie Breite konstant in Autolayout beheben gewaltsam –

+0

@MikeAlter wie genau zwei Zeilen angezeigt werden? –

+0

in Auto-Layout festlegen fix width und NSLineBreakByWordWrapping –

Antwort

8

Schritt 1. Set Anzahl der Zeilen auf dem Etikett zu 2.
Schritt 2. Set „Vertikale umarmen Priorität“ zu High (1000)
Schritt 3. Rechtsklick auf Ihrem Label und verbinden mit dem Symbol auf der linken Seite und wählen Sie "Center Vertically".
Schritt 4. Klicken Sie mit der rechten Maustaste auf Ihr Etikett und verbinden Sie es mit dem Symbol links und legen Sie "Horizontal Spacing" fest.
Schritt 5. Wenn dieser Text statisch ist, tun Sie wie vorgeschlagen Igor, sonst ersetzen Sie einfach @ "" durch @ "\ n", nachdem Sie diesem Label Text zugewiesen haben. Z.B.

NSString *text = @"Какой-то Справочник"; 
self.myLabel.text = [text stringByReplacingOccurrencesOfString:@" " withString:@"\n"]; 

Oder setzen Sie gerade self.myLabel.lineBreakMode = NSLineBreakByWordWrapping;

+0

Vielen Dank, dass Sie tun werden –

+4

Да не за что;) – arturdev

+0

Das ist was OP will. – user3182143

5

In InterfaceBuilder Einstellungen von UILabel Text drücken Sie Option + geben Sie zwischen "Справочник" und "МКБ".

Oder label.text = @"Справочник\nМКБ"; einstellen.

Und natürlich setzen yourLabel.numberOfLines = 2 oder 0 in IB oder Code.

2

Sie müssen die numberOfLines einstellen.

yourLabel.numberOfLines = 2 
+1

Dies wird nicht zwei Zeilen erzwingen, sondern zwei Zeilen aktivieren. – NikMos

1

Sie können entweder die Beschriftung erzwingen, um einen zweizeiligen Text anzuzeigen, indem Sie an der gewünschten Stelle in der Zeichenfolge ein "\ n" einfügen.

Oder Sie können dem Etikett eine konstante Breite zuweisen, um es immer in einer konstanten Breite zu halten (dies bewirkt, dass das Etikett den Text in zwei Zeilen darstellt, solange der Text größer als die Breite ist). Denken Sie daran, die zulässige Zeilen Nummer 2.

2

Wenn es ein fester Text dann für \n gehen.

Wenn es ein dynamischer Text ist dann geht für Auto-Layout mit einer festen Breite einstellen und dann numberoflines=0 und NSLineBreakByWordWrapping

4

folgender Code funktioniert möglicherweise helfen Ihnen, und Sie müssen Etikett Höhe machen genug, um zwei Linien zu decken.

NSString *text = @"Какой-то Справочник"; 
self.Label.lineBreakMode = NSLineBreakByWordWrapping; 
self.Label.numberOfLines = 2;