Ich verwende NSMutableAttributedString
und NSAttributedString
, um einen Beschriftungstext in zwei verschiedenen Schriftgrößen anzuzeigen. Mein Ansatz ist:Das Anhängen von NSAttributedString mit Zeilenumbruch gibt attributierte Zeichenfolge mit falschem Format zurück
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"days" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
Was mich ein Zugeschrieben String zurückgibt mit „2“ in der Schriftgröße 12 und „Tage“ in der Schriftgröße 8.
Allerdings ist das andere Szenario einen Zeilenumbruch hinzuzufügen, nachdem 2. Ich verwende den folgenden Code:
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"\ndays" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
Diese Zeit attributierte Zeichenfolge gilt das Attribut im Volltext. Ich erhalte eine Zeichenfolge zurück mit „2 \ nTage“ in Schriftgröße 8.
Bitte leite mich, wenn es ein besserer Ansatz ist das nötige zu tun. – user3404693
Sie können auch '- (void) addAttribute verwenden: (NSString *) name value: (id) Wertebereich: (NSRange) range' Methode der attributierten Zeichenfolge, um das Attribut auf einen anderen Teil der attributierten Zeichenfolge zu setzen. Und 'setLineBreakMode' von label zu' NSLineBreakByWordWrapping'. – Akhilrajtr
Für diejenigen, die wie ich stecken geblieben war, setze yourLabel.numberOfLines = 0; im Code. – Borzh