2015-06-22 12 views
8

Also ich habe eine UILabel, die möglicherweise zu einer zweiten Zeile gehen, oder nicht, je nachdem, ob es auf dem iPhone oder iPad ist. Was ich erreichen möchte, ist, dass es in der zweiten Zeile eingerückt wird, um es bei Bedarf korrekt auszurichten.Indent zweite Zeile von UILabel

Auf iPad wird es fast nie den zweiten Zeilenumbruch benötigen, und abhängig davon, auf welchem ​​iPhone es läuft, kann es oder auch nicht. Also, im Wesentlichen brauche ich eine Möglichkeit, die zweite Zeile dynamisch einzurücken, nur wenn es eine zweite Zeile gibt.

Antwort

21

Verwenden Sie ein NSAttributedString für das Etikett, und stellen Sie die headIndent seiner paragraph style:

NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; 
style.headIndent = 14; 
NSDictionary *attributes = @{ 
    NSParagraphStyleAttributeName: style 
}; 
NSAttributedString *richText = [[NSAttributedString alloc] initWithString:@"So this UILabel walks into a bar…" attributes:attributes]; 
self.narrowLabel.attributedText = richText; 
self.wideLabel.attributedText = richText; 

Ergebnis:

example result

+0

schön gearbeitet, danke! –

+0

Ich habe ein Problem bei der Verwendung von benutzerdefinierten Schriftarten. Hast du auch ein Problem? –