UIFont mit benutzerdefinierten schriftart-Fehler mit der Null
Ich versuche, fügen Sie eine benutzerdefinierte schriftart für mein Projekt in Xcode 4.2, aber immer wenn ich versuche, es zu benutzen, bekomme ich eine Fehlermeldung, dass das Objekt null ist.
Habe ich Folgendes getan:
1) Fügte eine Reihe zu meine .plist 'Schriften Applikation" Wert: "LCDMono2 Ultra.ttf"
2) Hinzugefügt, die schriftart zu meiner Unterstützenden Dateien und zeigten, dass es in XCode zu überprüfen, wurde Hinzugefügt.
3) wurde unter Verwendung von Get Info, dass der Vollständige Name ist "LCDMono2 Ultra"
4) Erstellt, die schriftart in meinem Projekt:
UIFont *myFont = [UIFont fontWithName:@"LCDMono2 Ultra" size:16];
und ich habe versucht, für diese Variante:
UIFont *myFont = [UIFont fontWithName:@"LCDMono2 Ultra" size:16.f];
5) Versucht, den font-Namen (addObject:myFont.fontName)
erzeugen der 'nil'
Fehler.
Was könnte die Ursache der Fehler? Könnte es sein, etwas wie das Leerzeichen im Namen hat?
- Verwenden
[UIFont familyNames]
zu sehen, wenn die schriftart ist eigentlich immer "gesehen", die von der OS. Das wird mindestens schmale Dinge nach unten. Ich habe som Arten von font-Dateien, die iOS erkennen würde nicht. - Ich wusste nur, dass, bevor ich Lesen Sie Ihre Antwort! Und sicher genug, Xcode entfernt den Raum automatisch und zeigt die Namen als "LCDMono2Ultra" und funktioniert. Ist das nicht immer so? Danke.
- Wahrscheinlich nicht Xcode. Das ist wahrscheinlich die Art und Weise der font-name wird codiert in der font-Datei. Ein wenig grundlose Hinweis: nur iOS ermöglicht das laden von zwei Seiten aus einer Familie, so dass, wenn Sie mit mehr als zwei Gesichter aus einer Familie, müssen Sie ändern den Namen der Familie auf jedes Gesicht einzigartig zu sein. Das dauerte eine Weile, um die Spur zu ...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Raum, in dem der Vollständige Name der schriftart entfernt wurde, automatisch nach dem hinzufügen in das Projekt. Ich habe die original-schriftart-Datei, und der Raum ist da, also Apple muss sich nicht auseinandersetzen will mit Leerzeichen. Ich habe die Referenz zu "LCDMono2Ultra" und es funktioniert.
Preview > Show Font Info
zeigen die verschiedenen Namen, einschließlich des PostScript-name. Die PostScript-name "LCDMono2 Ultra" istLCDMono2Ultra
.Ich hatte dieses exakte gleiche problem für ein paar Stunden und versucht, alle der oben genannten und keiner war, der font wurde Hinzugefügt, überall dort, wo es hätte sein sollen, und ich versuchte sogar Schriftarten, die arbeitete in anderen apps, aber nie erschien, Hinzugefügt werden, um diese app.
Scheint es, hat sich etwas verändert in Xcode 5 die schriftart Hinzugefügt werden mussten, die in den Ziel-Eigenschaften unter der Registerkarte "info" für diese Arbeit in der Erwägung, dass, nachdem Sie zuvor Hinzugefügt werden, in der "appName-info.plist " (siehe Bild unten:
Hoffe, dies hilft jemand anderes.
Haben Sie setzen einen Haltepunkt in und überprüft, dass Sie immer einen gültigen UIFont Objekt für myFont. Dies lohnt wie die meisten wahrscheinlich, dass das Problem ist, dass "LCDMono2 Ultra" ist eigentlich die Namen für die schriftart und das, was Sie wollen zu verwenden, ist so etwas wie "LCDMono2 Ultra-normal" oder "LCDMono2 Ultra-Fett". Öffnen Sie Ihre .ttf-Schriftart Buchen und sehen, welche Infos es gibt Sie.
Alternativ, wenn Sie nicht finden können, was in der Schrift Buch, das Sie könnten versuchen, den Aufruf:
Und dann einfach drucken Sie das array von Schriftarten in den debugger, um zu überprüfen, was Sie sein sollte.
Hoffe, dies hilft, lassen Sie mich wissen, wenn dies nicht funktioniert, und ich werde versuchen, an etwas anderes zu denken 🙂
Finden Sie Ihre schriftart (vielleicht mit anderen Namen) und verwenden Sie diesen Namen.
In meinem Fall, ich brauchte, um entfernen Sie alle zusätzlichen Trennstriche aus dem font-Namen, die abgesehen von einem Recht vor dem font-weight:
Meine schriftart-Datei ist "Futura Heavy.ttf", dann verwende ich
-
ersetzt der Raum wie unten, dann funktioniert es!Sicher sein, um die schriftart-Datei-Erweiterung als Teil des namens in der plist "Schriften Anwendung".