Wie Vertikal Ausrichten von Text Mit UILabel und NSAttributedString
Ich bin mit UILabel und NSAttributedString zu setzen linespacing für die label-Texte in IOS7. Aber wenn ich diese text nicht ausgerichtet scheint zentral auf dem Etikett. Hier ist mein code um text - (zugeschrieben), um das label.
-(void)setText:(NSString *)text
{
[super setText:text];
if(text)
[self setLineSpace];
}
-(void)setLineSpace
{
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
{
NSMutableAttributedString *string=[[NSMutableAttributedString alloc]initWithString:self.text];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
paragraphStyle.alignment=NSTextAlignmentJustified;
[paragraphStyle setLineSpacing:4] ;
// paragraphStyle.minimumLineHeight =0;
// paragraphStyle.maximumLineHeight=7;
// CTTextAlignment alignment = kCTCenterTextAlignment;
[string addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, string.length)];
self.text=nil;
self.attributedText=string;
[self setBackgroundColor:[UIColor redColor]];
}
}
Hier sind einige Screenshots ,BTW bin Unterklassen UILabel und überschreiben der setter zu implementieren linespacing.
das, was Sie wollen ?
ich möchte verically richten Sie die Saiten ..siehe screenshot news ist mehr ausgerichtet, um 'up-Teil' von dem label/..
Nun müssen Sie UILabel nur, ich meine, wenn Sie verwenden können, UITextField dann innerhalb von xib-es bietet-control-Bereich, dort können Sie direkt ändern Sie die Ausrichtung des Textes, der ohne schreiben von code
textview ist keine option für mich, ich brauche uilabel
Warum Sie sich sorgen machen müssen linespacing, wenn Ihr label ist nur die Anzeige einer einzelnen Textzeile? Oder ist der rest des Textes nicht sichtbar ist?
ich möchte verically richten Sie die Saiten ..siehe screenshot news ist mehr ausgerichtet, um 'up-Teil' von dem label/..
Nun müssen Sie UILabel nur, ich meine, wenn Sie verwenden können, UITextField dann innerhalb von xib-es bietet-control-Bereich, dort können Sie direkt ändern Sie die Ausrichtung des Textes, der ohne schreiben von code
textview ist keine option für mich, ich brauche uilabel
Warum Sie sich sorgen machen müssen linespacing, wenn Ihr label ist nur die Anzeige einer einzelnen Textzeile? Oder ist der rest des Textes nicht sichtbar ist?
InformationsquelleAutor Raon | 2013-12-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eigentlich habe ich es gelöst ....:) 🙂 .Das problem war mit der benutzerdefinierten schriftart, die ich verwendet wurde.
Dauerte einige R&D aber jetzt scheint es zu arbeiten
Gerade erstellt eine Unterklasse für label und überschreiben einige Standard-Methoden.
InformationsquelleAutor Raon
Wahrscheinlich können Sie es nicht mit UILabel in der einfachen Weise.
Wenn möglich, können Sie UITextField, vertikal ausrichten von Inhalten.
Anderes NSAttributedString und der text der Beschriftung können Sie anpassen, Line-Height (Nicht sicher).
InformationsquelleAutor Ravi Sisodia
Können Sie verwenden, einige andere Abhilfe - eine benutzerdefinierte UILabel
NWLabel.m
NWLabel.h
Original Antwort ist hier geschrieben von @ivan.m .. Und bei mir funktioniert discussions.apple.com/thread/1759957?tstart=0
InformationsquelleAutor nerowolfe
Wenn es nur eine Textzeile angezeigt, in der Ihr benutzerdefiniertes Etikett, nicht den Zeilenabstand.
Da sind Sie wieder, mit diesem code auch für andere labels?
Ihr ios 7 nicht über einen nyc Zeilenabstand (Standard -) so ich muss dass manuell.. 🙁
InformationsquelleAutor bilobatum
Erfolgt über die zugeschrieben string:
ObjC:
Swift:
InformationsquelleAutor Casey