9 Stimmen

ttf-Schriftart für iPhone im Interface Builder oder Simulator nicht verfügbar

Ich habe eine Schriftartdatei (.ttf) zu meinem Xcode-Projekt hinzugefügt, um Ressourcen. Außerdem habe ich sie zu den UIAppFonts in meiner info.plist hinzugefügt.

Wenn ich diese Schriftart jedoch verwenden möchte, sehe ich sie nicht einmal als Auswahlmöglichkeit in IB.

Nachdem ich die Schriftart auf meinem System installiert hatte, begann ich, sie in IB zu sehen, aber trotzdem - der Wechsel zu dieser Schriftart ändert nichts - wird sowohl im Interface Builder als auch im iPhone-Emulator eine Standard-Systemschriftart angezeigt.

Gibt es noch weitere Schritte, die ich unternehmen sollte, um meine eigene Schriftart verwenden zu können?

17voto

Allyn Punkte 19981

Um benutzerdefinierte Schriftarten unter iOS zu verwenden, müssen Sie sie programmatisch festlegen.

Nehmen wir zum Beispiel an, Sie haben eine Schriftdatei namens schwellfont.ttf die Sie zu Ihrem Projekt hinzufügen. Sie würden dann in Ihre App-Info.plist-Datei gehen und den vollständigen Namen der Datei zum nächsten Index des Arrays hinzufügen, das von UIAppFonts verschlüsselt wird, wie Sie erwähnen.

<key>UIAppFonts</key>
<array>
    <string>swellfont.ttf</string>
</array>

Dann, um die Schriftart zu verwenden:

label.font = [UIFont fontWithName:@"swellfont" size:12];

Angenommen, das Etikett ist ein UILabel und dass schwellfont.ttf ist nicht geschützt . Es ist wichtig zu beachten, dass sich fontWithName von UIFont nicht auf den Dateinamen bezieht, sondern den tatsächlichen Namen der Schriftart anfordert. Wenn Sie die Schrift mit FontForge öffnen, können Sie diese Information sehen, indem Sie Element > Font Info in der Menüleiste wählen. Es gibt wahrscheinlich cleverere Wege, diese Informationen herauszufinden.

7 Stimmen

Es sollte beachtet werden, dass das String-Argument der Name der Schriftart sein sollte, nicht der Dateiname der Schriftartdatei (der derselbe sein kann oder auch nicht). Diese Unterscheidung hat mich für ein bisschen verwirrt.

0 Stimmen

Jep - ich habe diese Information hinzugefügt, als Sie kommentiert haben. Das hat mir auch ein paar Probleme bereitet. Irgendwie verwirrend! Apple spielt mit der Definition des Begriffs "Name" ziemlich locker :)

0 Stimmen

Das ist der Punkt, an dem ich mich geirrt hatte... Dank dieser ist es jetzt arbeiten. Danke :D - Es ist wichtig zu beachten, dass UIFont's fontWithName nicht auf den Dateinamen verweist, stattdessen seine wollen den tatsächlichen Namen der Schriftart.

0voto

Vincent Punkte 4226

Ich verwende 2 Schriftarten in einer APP. Die erste wurde automatisch zu den "Copy Bundle Resources" hinzugefügt, die andere nicht. Ich musste diese Schrift selbst hinzufügen.

Aufruf des Codes:

[labelName setFont:[UIFont fontWithName:@"OneGreatBigFont" size:40]];

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X