2016-10-27 1 views
0

Ich möchte Zeilenumbrüche auf meinem Etikett setzen.Kann auf dem Etikett keine Zeilenumbrüche sein

Ich habe versucht:

self.lblYouHaveAMatch.lineBreakMode = NSLineBreakByWordWrapping; 
self.lblYouHaveAMatch.numberOfLines = 0; 

ich eine Zeichenfolge wie diese:

"You have a match with \nfirst_name!" 

Ich versuche auch "\r" statt "\n", aber es funktioniert nicht.

Mein Etikett auf dem Interface Builder.

enter image description here

enter image description here

Aber es zeigt nur auf meinem Gerät.

+0

haben Sie wie folgt versucht: label.text = [NSString stringWithFormat: @ "% @ \ r% @", @ "erste Zeile", @ "zweite Zeile"]; ' – Aneesh

+4

Versuchen Sie, Ihre UILabel-Höhe zu erhöhen. – Manishankar

+0

Versuchen Sie, 'attributierten' Text anstelle von' plain' Text – Arasuvel

Antwort

1

Sie verwenden autoresising Maske, auf dem letzten Bild Sie müssen in autoresicing wählen: zu rechten Rand (denn jetzt haben Sie nur oben und linken Rand Und Sie brauchen eine horizontale Linie wählen So danach. Sie werden horizontale Grenzen gesetzt, aber Sie nicht Höhe eingestellt, so dass Sie Höhe automatisch werden, weil die Verwendung angeben Anzahl der Zeilen 0

1

Hier müssen Sie nur noch die Höhe des Etiketts berechnen, basierend auf bestimmten Text und Breite.

NSString *[email protected]"1 Showing First Line\n2 Showing Second line\n3 Showing Third line"; 


NSDictionary *attributes = @{NSFontAttributeName: self.lbMultiLine.font}; 

// ios7.0 
CGRect adjustedSize = [sampleMultiLineText boundingRectWithSize:CGSizeMake(self.lbMultiLine.frame.size.width, CGFLOAT_MAX) 
              options:NSStringDrawingUsesLineFragmentOrigin 
             attributes:attributes 
              context:nil]; 

// 0 = Multiple lines 
self.lbMultiLine.numberOfLines = 0; 
self.lbMultiLine.lineBreakMode = NSLineBreakByWordWrapping; 

//setting text 
self.lbMultiLine.text = sampleMultiLineText; 


//now Update Frame as hight of label may be higher than current so all the text can be show 
[self.lbMultiLine setFrame:CGRectMake(self.lbMultiLine.frame.origin.x, self.lbMultiLine.frame.origin.y,adjustedSize.size.width,adjustedSize.size.height)]; 
Verwandte Themen