UILabel Erscheinungsbild schriftart und zugeschrieben string font

In meiner app habe ich eine Globale benutzerdefinierte schriftart gelten für alle labels, wie so:

UIFont *font = [UIFont fontWithName:kMyFontName size:15.0]; 
[[UILabel appearance] setFont:font];

Diese funktioniert einwandfrei. Jedoch, in einigen Fällen möchte ich in der Lage sein, wenn Sie eine andere schriftart für eine bestimmte region, ein UILabel string.

So, ich habe so etwas wie dieses:

NSString *string = @"Foo Bar Baz";
UIFont *boldFont = [UIFont fontWithName:kMyBoldFontName size:15.0]; 
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:string];
[attrString setAttributes:@{ NSFontAttributeName: boldFont } range:NSMakeRange(0, 3)];
self.myLabel.attributedText = attrString;

Allerdings scheint dies nicht zu funktionieren. Ich erwarte, dass die "Foo", kühn zu sein, aber der gesamte string nur hat die Standard-schriftart. Es ist, als ob die Fette Schrift ist nicht zur Anwendung und ist wird überschrieben durch den Zeichensatz, der auf dem UILabel Aussehen proxy.

Wenn ich entfernen Sie die UILabel Erscheinungsbild Zeile dann funktioniert das Prima (ich kann sehen, Teil der Zeichenfolge Fett gedruckt). Im Grunde möchte ich meine eigene schriftart angewendet, um das Etikett, sondern eine separate schriftart angewendet, um zu einer anderen region der Schnur. Normalerweise funktioniert das gut mit zugeschrieben strings, sondern für einige Grund-Einstellung der UILabel Erscheinungsbild schriftart deaktiviert diese Funktion (oder so es scheint).

  • Erwarteten Ergebnisse: "Foo Bar Baz"
  • Die tatsächlichen Ergebnisse: "Foo Bar Baz"

Wenn ich entfernen Sie die [[UILabel appearance] setFont:] Zeile, dann funktioniert es:

  • "Foo Bar Baz"

(aber die benutzerdefinierte schriftart nicht auf den rest der Zeichenkette).

Also meine Frage ist: gibt es eine Möglichkeit, an eine einzige schriftart verwenden, als die Standard-app-breit, aber immer noch in der Lage sein, teilweise zu überschreiben, dass die Verwendung zugeschrieben strings?

Auch, wenn jemand zu mir erklären können, warum dies nicht funktioniert würde ich es begrüßen.

Definiere "funktioniert nicht". Was ist eigentlich passiert?
Tut mir Leid, dass, ich aktualisiert meine Frage mit mehr details. Lassen Sie mich wissen, wenn es immer noch nicht klar.
Nur als test, versuchen, zu tun: self.myLabel.font = nil;.
interessanter Vorschlag, aber das schien nicht zu arbeiten.
u überprüfen Sie die benutzerdefinierte schriftart in Fettdruck-schriftart-Unterstützung, becoz einige Schriftarten nicht unterstützen Fett?

InformationsquelleAutor nebs | 2014-07-30

Schreibe einen Kommentar