2016-04-30 8 views
-1

Ich habe Multiline-Label, ändert es Rahmen entsprechend der Textlänge richtig. Wenn ich die Breite des Etiketts bekomme, zählt es die ganze Breite des Etiketts, während ich nur die Breite der ersten Zeile möchte. Ich verwende diesen Code, um jede Zeile zu erhalten.erhalten erste Zeile von Multi-Line-Label - Objektiv c

NSArray *linesArray = [self getLinesArrayOfStringInLabel:label]; 

, wenn der Text zu lang ist, es funktioniert, aber wenn der Text kurz ist letztes Wort der Pausen Linie in der zweiten Zeile und zeigt sie einzelne Zeile in Etikett.

enter image description here

und Array ist

linesArray = (
    " this is multiline label. I want just first ", 
    "line." 
) 

was falsch ist hier los ??

+0

http://stackoverflow.com/questions/30435406/get-string-of-first-line-in-a-uilabel –

+0

Ich möchte wissen, warum Sie das wollen? Vielleicht gibt es einen anderen Weg, um zu tun, was Sie wollen ... –

+0

Ich benutze den gleichen Code ... – Nisha

Antwort

0

können Sie dynamische Größe des Etiketts mit Hilfe folgenden Methode

//label is UILabel 
CGSize expectedLabelSize = [label.text boundingRectWithSize:self.view.frame.size 
             options:NSStringDrawingUsesLineFragmentOrigin 
             attributes:@{NSFontAttributeName:[UIFont fontWithName:@"Font you are using" size:<size of font>]} 
             context:nil].size; 

erhalten Sie Größe für Breite und Höhe verwenden können.

+0

Bitte schreiben Sie einen Kommentar, was falsch ist in Iy vor der Abstimmung unten. –