2016-03-24 9 views
2

Ich versuche, Text Schriftgröße mit NSAttributedString zu ändern. Aber die Größe ändert sich nicht.Objective c UIFont SystemFontOfSize funktioniert nicht

NSDictionary *attrDict = @{NSFontAttributeName : [UIFont boldSystemFontOfSize:22], NSForegroundColorAttributeName : [UIColor orangeColor]}; 

NSAttributedString *newAttString = [[NSAttributedString alloc] initWithString:mytext attributes:attrDict]; 

[result appendAttributedString:newAttString]; 

Nur Textfarbe ändert sich. Die Größe der Ergebniszeichenfolge ist nicht 22 und auch nicht fett.

+0

Wenn Sie den Wert von 'newAttString' loggen scheint es richtig? Der von 'result' nach dem Anhängen von' newString' auch? Ihr Problem könnte danach sein. – Larme

+0

Zeichenfolge ist korrekt. Es gibt keinen Fehler. Aber die Schriftgröße ändert sich nicht. – user

+0

Was machen Sie danach mit "result"? Wenden Sie wieder irgendwo einen 'NSFontAttributeName' an? – Larme

Antwort

0

Anstatt die Attribute mit dem alloc der Anwendung, init, versuchen Sie es nach wie mit etwas zu tun (mit einem wandelbar NSAttributedString):

NSMutableAttributedString *newAtt = [[NSMutableAttributedString alloc] initWithString:mytext]; // Allocate a new NSMutableAttributedString with `mytext` 
[newAtt addAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:20], 
             NSForegroundColorAttributeName: [UIColor orangeColor]} 
           range:NSMakeRange(0, [result length])]; // add new attributes for the length of the string `mytext` 

[result setAttributedText:newAtt]; 

Diese Antwort variieren würde je nachdem, was result ist, testete ich es auf einem UITextView und es hat gut funktioniert, es gibt auch eine attributedText Eigenschaft auf UILabels. Hoffe, das hilft.

0

Sie haben nicht erwähnt, was result bedeutet am Ende Ihres Codes. Sind Sie sicher, dass Sie es "anhängen" möchten?

Außerdem verwende ich diesen Code für die Einstellung Schriftarten

[UIFont fontWithName:@"Arial-BoldMT" size:22.0f] 

Diese verwendet werden können, die jeweils unterschiedliche Schriftarten und -größen zu setzen.

Hoffen das hilft :)