So legen Sie eine benutzerdefinierte Schriftfamilie als Systemschriftart in der ios-anwendung fest [duplizieren]

8

Ich arbeite an einer iOS-Anwendung, in der ich benutzerdefinierte Schriftarten für Benutzeroberflächen verwenden muss. Ich weiß, wie man neue benutzerdefinierte Schriftarten in Anwendungen integriert. Dafür habe ich

  1. Laden Sie Schriftfamilien-Dateien mit der Erweiterung .ttf herunter.
  2. Fügen Sie sie dem Ressourcenbündel hinzu.
  3. In der Datei info.plist add with key Die von der Anwendung bereitgestellten Schriftarten.

Diese benutzerdefinierten Schriftarten zeigen Wirkung. Aber was ich tun möchte, ist, ich möchte sie als SystemFont setzen. Also muss ich sie nicht in allen UI-Elementen einstellen.

Ich möchte etwas wie

%Vor%

Ist das möglich? Kann mir jemand dabei helfen?

    
Jay Pandya 23.10.2013, 13:24
quelle

1 Antwort

16

Ich hatte das gleiche Problem beim Aktualisieren meiner iOS-App für iOS 7. Ich wollte eine benutzerdefinierte Schriftart für die gesamte Anwendung festlegen, auch für Steuerelemente, deren Schriftart Sie nicht anpassen dürfen (z. B. Auswahlhilfen).
Nach ein wenig Recherche im Internet und auf Twitter, löste ich mit Method Swizzling, eine Praxis, die im Austausch Methodenimplementierungen besteht.

HINWEIS: Diese Methode kann gefährlich sein, wenn sie nicht sorgfältig verwendet wird! Lesen Sie diese Diskussion zu SO: Gefahren der Methode Swizzling

Aber das ist was zu tun:

  1. Erstellen Sie eine UIFont-Kategorie wie UIFont + CustomSystemFont.
  2. Importieren Sie <objc/runtime.h> in Ihre .m-Datei.
  3. Lassen Sie die .h-Datei unverändert und fügen Sie diesen Code der .m:
  4. hinzu
%Vor%

// Methode Swizzling

%Vor%     
matteodv 23.10.2013, 18:22
quelle

Tags und Links