ios - ändern - systemschriften ipad




Kann ich eine benutzerdefinierte Schriftart in eine iPhone-Anwendung einbetten? (20)

Diese Frage bezieht sich auf iOS vor 3.2. Ab Version 3.2 ist diese Funktionalität mit der folgenden Antwort von samvermette leicht erreichbar, und ich habe die Accepted Answer (vom Befehl zu samvermette) geändert, um dies zu berücksichtigen. Ich kann beiden Antworten (neben Upvotes) nicht zustimmen, aber sie sind beide gut.

Ich möchte, dass eine App eine benutzerdefinierte Schriftart zum Rendern von Text enthält, lade sie und verwende sie dann mit UIKit Standardelementen wie UILabel . Ist das möglich?

Ich habe folgende Links gefunden:

aber diese würden erfordern, dass ich jedes Glyph selbst rendere, was ein bisschen zu sehr nach harter Arbeit ist, besonders nach mehrzeiligem Text.

Ich habe auch Posts gefunden, die direkt sagen, dass das nicht möglich ist, aber ohne Begründung, also suche ich nach einer definitiven Antwort.

BEARBEITEN - fehlgeschlagen -[UIFont fontWithName:size:] Experiment

Ich habe Harrowprint.tff heruntergeladen (von here heruntergeladen) und es zu meinem Resources-Verzeichnis und zu dem Projekt hinzugefügt. Ich habe dann diesen Code ausprobiert:

UIFont* font = [UIFont fontWithName:@"Harrowprint" size:20];

was dazu führte, dass eine Ausnahme ausgelöst wurde. Ein Blick auf die TTF-Datei im Finder bestätigte, dass der Name der Schriftart Harrowprint war.

BEARBEITEN - es gab bisher eine Reihe von Antworten, die mir sagen, dass ich die Dokumentation zu X oder Y lesen soll. Ich habe intensiv mit all diesen Dingen experimentiert und bin nirgendwohin gekommen. In einem Fall stellte sich heraus, dass X nur unter OS X und nicht auf dem iPhone relevant war. Folglich setze ich ein Kopfgeld für diese Frage, und ich werde das Kopfgeld an die erste Person vergeben, die eine Antwort (unter Verwendung nur dokumentierter APIs) gibt, die mit ausreichenden Informationen antwortet, um das am Gerät zu arbeiten. Auch das Arbeiten am Simulator wäre ein Bonus.

Bearbeiten - Es scheint, dass das Kopfgeld automatisch die Antwort mit der höchsten Anzahl von Stimmen vergibt. Interessant. Niemand hat tatsächlich eine Antwort geliefert, die die gestellte Frage gelöst hat - die Lösung, die das Codieren Ihrer eigenen UILabel Unterklasse beinhaltet, unterstützt kein Word-Wrap, was ein wesentliches Merkmal für mich ist - obwohl ich denke, dass ich es erweitern könnte.


Swift, code way: (works also with swift 2.0)

Add the required fonts to your project (just like adding images, just drag to Xcode), make sure that they are targeted to your project
add this method and load custom fonts (recommended in appDelegate didFinishLaunchingWithOptions )

func loadFont(filePath: String) {

    let fontData = NSData(contentsOfFile: filePath)!

    let dataProvider = CGDataProviderCreateWithCFData(fontData)
    let cgFont = CGFontCreateWithDataProvider(dataProvider)!

    var error: Unmanaged<CFError>?
    if !CTFontManagerRegisterGraphicsFont(cgFont, &error) {
        let errorDescription: CFStringRef = CFErrorCopyDescription(error!.takeUnretainedValue())
        print("Unable to load font: %@", errorDescription, terminator: "")
    }

}

Use example:

if let fontPath = NSBundle.mainBundle().pathForResource("My-Font", ofType: "ttf"){
      loadFont(fontPath)
}

Use the font:

UIFont(name: "My-Font", size: 16.5)

Bessere Lösung ist das Hinzufügen einer neuen Eigenschaft " Fonts provided by application " zu Ihrer Datei info.plist .

Dann können Sie Ihre benutzerdefinierte Schriftart wie normale UIFont .


Es gibt eine einfache Möglichkeit, benutzerdefinierte Schriftarten in iOS 4 zu verwenden .

  1. Fügen Sie Ihre Schriftart-Datei (beispielsweise Chalkduster.ttf ) in XCode in dem Ordner Ressource des Projekts hinzu.
  2. Öffnen Sie info.plist und fügen Sie einen neuen Schlüssel namens UIAppFonts . Der Typ dieses Schlüssels sollte Array sein.
  3. Fügen Sie diesem Array den Namen Ihrer benutzerdefinierten Schriftart einschließlich der Erweiterung ( Chalkduster.ttf ) hinzu.
  4. Jetzt können Sie [UIFont fontWithName:@"Chalkduster" size:16] in Ihrer Anwendung verwenden.

Leider erlaubt IB nicht, Etiketten mit benutzerdefinierten Schriftarten zu initialisieren. Sehen Sie sich diese Frage an, um dieses Problem zu lösen. Meine bevorzugte Lösung ist die benutzerdefinierte UILabel Unterklasse:

@implementation CustomFontLabel

- (id)initWithCoder:(NSCoder *)decoder
{
    if (self = [super initWithCoder: decoder])
    {
        [self setFont: [UIFont fontWithName: @"Chalkduster" size: self.font.pointSize]];
    }
    return self;
}

@end

Es gibt eine neue Möglichkeit, benutzerdefinierte Schriftarten zu verwenden, beginnend mit iOS 4.1. Es ermöglicht Ihnen, Schriftarten dynamisch zu laden, sei es aus Dateien, die in der App enthalten sind, heruntergeladene Daten oder was Sie haben. Außerdem können Sie Schriftarten nach Bedarf laden, während die alte Methode sie alle zum Startzeitpunkt der App lädt, was bei vielen Schriftarten zu lange dauern kann.

Die neue Methode wird unter ios-dynamic-font-loading

Sie verwenden die CTFontManagerRegisterGraphicsFont Funktion und geben ihr einen Puffer mit Ihren Schriftartdaten. Es ist dann wie bei der alten Methode für UIFont und Web-Ansichten verfügbar. Hier ist der Beispielcode von diesem Link:

NSData *inData = /* your font-file data */;
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
    CFStringRef errorDescription = CFErrorCopyDescription(error)
    NSLog(@"Failed to load font: %@", errorDescription);
    CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);

Es ist sehr einfach, eine neue Schriftart in Ihrer bestehenden iOS App hinzuzufügen.

Sie müssen nur die Schriftart zB font.ttf in Ihren Ressourcenordner hinzufügen.

Öffnen Sie Ihre Anwendung info.plist . Fügen Sie eine neue Zeile als "Von Anwendung bereitgestellte Schriftarten" hinzu und geben Sie den Schriftnamen als font.ttf ein.

Und beim Setzen der Schriftart tun setFont:"corresponding Font Name" dies als setFont:"corresponding Font Name"

Sie können prüfen, ob Ihre Schriftart von NSArray *check = [UIFont familyNames]; hinzugefügt wurde oder nicht NSArray *check = [UIFont familyNames]; .

Es gibt alle Schriftarten zurück, die von Ihrer Anwendung unterstützt werden.


Fügen Sie in Info.plist den Eintrag "Fonts by application" hinzu und fügen Sie die Fontnamen als Strings hinzu:

Fonts provided by application
           Item 0        myfontname.ttf
           Item 1        myfontname-bold.ttf
           ...

Überprüfen Sie dann, ob Ihre Schriftart enthalten ist, indem Sie Folgendes ausführen:

for (NSString *familyName in [UIFont familyNames]) {
    for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
         NSLog(@"%@", fontName);
    }
}

Beachten Sie, dass Ihr ttf-Dateiname möglicherweise nicht derselbe Name ist, den Sie verwenden, wenn Sie die Schriftart für Ihr Etikett festlegen (Sie können den obigen Code verwenden, um den Parameter "fontWithName" zu erhalten):

[label setFont:[UIFont fontWithName:@"MyFontName-Regular" size:18]];

Für iOS 3.2 und höher: Verwenden Sie die oben genannten Methoden:

  1. Fügen Sie Ihre Schriftart-Datei (beispielsweise Chalkduster.ttf ) in XCode in dem Ordner Ressource des Projekts hinzu.
  2. Öffnen Sie info.plist und fügen Sie einen neuen Schlüssel namens UIAppFonts hinzu. Der Typ dieses Schlüssels sollte Array sein.
  3. Fügen Sie Ihrem Array den Namen Ihrer benutzerdefinierten Schriftart einschließlich der Erweiterung (" Chalkduster.ttf ") hinzu.
  4. Verwenden Sie [UIFont fontWithName:@"Real Font Name" size:16] in Ihrer Anwendung.

ABER Der "Real Font Name" ist nicht immer der, den Sie in Fontbook sehen. Der beste Weg ist, Ihr Gerät zu fragen, welche Schriften es sieht und wie die genauen Namen lauten.

Ich benutze den uifont-name- uifont-name-grabber der bei: uifont-name-grabber gepostet wird

Legen Sie einfach die gewünschten Zeichensätze in das xcode-Projekt, fügen Sie den Namen der Datei hinzu und führen Sie sie auf dem Gerät aus, für das UIFont fontWithName: . Sie erhalten eine vollständige Liste mit den Namen, die UIFont fontWithName: erwartet.


Finde den TTF im Finder und "Get Info". Unter der Überschrift "Vollständiger Name:" gab es mir einen Namen, den ich dann mit fontWithName (ich habe gerade den genauen Namen kopiert und eingefügt, in diesem Fall war keine '.ttf'-Erweiterung notwendig).


Hier ist die Schritt für Schritt Anleitung, wie es geht. Keine Notwendigkeit, zusätzliche Bibliothek oder spezielle Codierung.

shang-liang.com/blog/custom-fonts-in-ios4

Die meiste Zeit ist das Problem mit der Schriftart und nicht mit der Methode. Der beste Weg, es zu tun ist, eine Schriftart zu verwenden, die mit Sicherheit funktioniert, wie Verdana oder Geogia. Wechseln Sie dann zur gewünschten Schriftart. Wenn es nicht funktioniert, ist der Schriftartname möglicherweise nicht richtig, oder die Schriftart ist keine gut formatierte Schriftart.


Ich habe das so gemacht:

Laden Sie die Schriftart:

- (void)loadFont{
  // Get the path to our custom font and create a data provider.
  NSString *fontPath = [[NSBundle mainBundle] pathForResource:@"mycustomfont" ofType:@"ttf"]; 
  CGDataProviderRef fontDataProvider = CGDataProviderCreateWithFilename([fontPath UTF8String]);

  // Create the font with the data provider, then release the data provider.
  customFont = CGFontCreateWithDataProvider(fontDataProvider);
  CGDataProviderRelease(fontDataProvider); 
}

Nun, in deinem drawRect: mache so etwas:

-(void)drawRect:(CGRect)rect{
    [super drawRect:rect];
    // Get the context.
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextClearRect(context, rect);
    // Set the customFont to be the font used to draw.
    CGContextSetFont(context, customFont);

    // Set how the context draws the font, what color, how big.
    CGContextSetTextDrawingMode(context, kCGTextFillStroke);
    CGContextSetFillColorWithColor(context, self.fontColor.CGColor);
    UIColor * strokeColor = [UIColor blackColor];
    CGContextSetStrokeColorWithColor(context, strokeColor.CGColor);
    CGContextSetFontSize(context, 48.0f);

    // Create an array of Glyph's the size of text that will be drawn.
    CGGlyph textToPrint[[self.theText length]];

    // Loop through the entire length of the text.
    for (int i = 0; i < [self.theText length]; ++i) {
        // Store each letter in a Glyph and subtract the MagicNumber to get appropriate value.
        textToPrint[i] = [[self.theText uppercaseString] characterAtIndex:i] + 3 - 32;
    }
    CGAffineTransform textTransform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
    CGContextSetTextMatrix(context, textTransform);
    CGContextShowGlyphsAtPoint(context, 20, 50, textToPrint, [self.theText length]);
}

Im Grunde müssen Sie einige rohe Kraft durch den Text schleifen und herumfummeln mit der magischen Zahl, um Ihren Offset (hier, siehe mich 29) in der Schriftart zu finden, aber es funktioniert.

Außerdem müssen Sie sicherstellen, dass die Schriftart rechtlich eingebettet ist. Die meisten sind nicht und es gibt Anwälte, die sich auf so etwas spezialisiert haben, also seien Sie gewarnt.


Ich habe einige Tipps auf dieser Seite in etwas zusammengefasst, das für iOS 5 funktioniert.

Zuerst müssen Sie die benutzerdefinierte Schriftart zu Ihrem Projekt hinzufügen. Dann müssen Sie den Anweisungen von @iPhoneDev folgen und die Schriftart zu Ihrer Datei info.plist hinzufügen.

Nachdem du das gemacht hast, funktioniert das:

UIFont *yourCustomFont = [UIFont fontWithName:@"YOUR-CUSTOM-FONT-POSTSCRIPT-NAME" size:14.0];
[yourUILabel setFont:yourCustomFont];

Sie müssen jedoch den Postscript-Namen Ihrer Schriftart kennen. Befolgen Sie einfach den Rat von @Daniel Wood und drücken Sie den Befehl-i, während Sie in FontBook sind.

Dann genießen Sie Ihre benutzerdefinierte Schriftart.


Ich würde empfehlen, einem meiner Lieblings-Kurzanleitungen hier zu folgen: http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/ von dem diese Information kommt.

Schritt 1 - Ziehen Sie Ihre .ttf oder .otf aus dem Finder in Ihr Projekt

HINWEIS - Klicken Sie auf das Kästchen "Zu Zielen hinzufügen" in Ihrem Hauptanwendungsziel

Wenn Sie vergessen haben, auf das Ziel zu klicken, klicken Sie auf die Schriftdatei in Ihrer Projekthierarchie und im rechten Bereich auf das Hauptziel der App im Bereich Zielmitgliedschaft

Um sicherzustellen, dass Ihre Schriften Teil Ihres App-Ziels sind, stellen Sie sicher, dass sie in den Build-Phasen in den Bundle-Ressourcen kopieren angezeigt werden

Schritt 2 - Fügen Sie die Schriftart-Dateinamen zu Ihrem Plist hinzu

Gehen Sie zu den benutzerdefinierten iOS-Zieleigenschaften in Ihrer Info- Sektion und fügen Sie einen Schlüssel zu den Elementen in diesem Abschnitt namens Fonts provided by application (Sie sollten es als Option sehen, wenn Sie es eingeben und es sich selbst als Array einrichten wird. Klicken Sie auf den kleinen Pfeil, um die Array-Elemente zu öffnen, und geben Sie die Namen der hinzugefügten .ttf- oder .otf-Dateien ein, damit Ihre App weiß, dass dies die gewünschten Schriftartdateien sind

HINWEIS - Wenn Ihre App direkt nach diesem Schritt abstürzt, überprüfen Sie die Rechtschreibung der Elemente, die Sie hier hinzufügen

Schritt 3 - Finden Sie die Namen Ihrer Schriftarten heraus, damit Sie sie anrufen können

Häufig unterscheidet sich der von Ihrer Anwendung erkannte Schriftname von dem, der Ihrer Meinung nach auf dem Dateinamen dieser Schrift basiert. Fügen Sie diesen Code in das Dokument ein und sehen Sie sich das Protokoll Ihrer Anwendung an, um zu sehen, welcher Schriftname in Ihrem Code aufgerufen werden soll

Schnell

for family: String in UIFont.familyNames(){
  print("\(family)")
  for names: String in UIFont.fontNamesForFamilyName(family){
      print("== \(names)")
  }
}

Ziel c

for (NSString* family in [UIFont familyNames]){
    NSLog(@"%@", family);
    for (NSString* name in [UIFont fontNamesForFamilyName: family]){
        NSLog(@"  %@", name);
    }
}

Ihr Protokoll sollte etwa so aussehen:

Schritt 4 - Verwenden Sie Ihre neue benutzerdefinierte Schriftart mit dem Namen aus Schritt 3

Schnell

 label.font = UIFont(name: "SourceSansPro-Regular", size: 18)

Ziel c

 label.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:18];

Mit iOS 8 + und Xcode 6 + kannst du das kinderleicht machen. Hier sind die Schritte:

1) Ziehen Sie Ihre Schriftart in den Ordner " Xcode Supporting Files". Vergiss nicht, deine App unter Ziel hinzufügen zu markieren. Ab diesem Moment können Sie diese Schriftart in IB und aus der Schriftartpalette auswählen.

2) Um diese Schriftart für Ihr Gerät verfügbar zu machen, öffnen Sie Ihre info.plist und fügen Sie Fonts provided by application hinzu. Es enthält Schlüssel Nr. 0, Sie müssen Ihren Schriftnamen als Wert hinzufügen. Der Name der Schriftart kann vom Namen der Schriftart abweichen. Aber zuerst, versuchen Sie, Ihren Dateinamen in den meisten Fällen diese Arbeit hinzuzufügen.

Wenn nicht, hat mir dieser Artikel immer geholfen.

Hier ist ein kurzer Codeausschnitt aus diesem Artikel, der Ihnen hilft, den Namen Ihrer Schriftart zu finden.

func allFonts(){

   for family in UIFont.familyNames(){

       println(family)


       for name in UIFont.fontNamesForFamilyName(family.description)
       {
           println("  \(name)")
       }

   }

}

BEARBEITEN

Ich möchte erwähnen, dass Sie Schriftart-Dateien zu den Build-Phasen Ihres Ziels , Bundle-Ressourcen kopieren , hinzufügen müssen. Ohne sie wird Ihre Schriftart auf dem Gerät nicht angezeigt. Und es könnte zu unerwartetem Verhalten führen.

Zum Beispiel UITextField ich auf einen bug , wenn UITextField eine benutzerdefinierte Schriftart hat, diese Schriftart aber nicht in den Ressourcen für das Kopieren von Paketen enthalten ist . Und wenn ich mit diesem textfield zum viewcontroller textfield , gibt es eine Verzögerung von ca. 4 Sekunden bevor die viewDidLoad Funktion aufgerufen wurde. Die Lösung von Font-Problemen hat diese Verzögerung behoben. Also, empfehlen Sie es zweimal zu überprüfen. (rdar: // 20028250) Übrigens, ich konnte den Fehler nicht reproduzieren, aber ich bin mir sicher, dass das Problem mit der Schriftart zu tun hatte.


Suchen Sie nach ATSApplicationFontsPath

Ein einfacher Plist-Eintrag, mit dem Sie die Font-Datei (en) in Ihren App-Ressourcen-Ordner aufnehmen können und in Ihrer App "einfach funktionieren".


Wenn Sie xcode 4.3 , müssen Sie die font der Build Phase unter Copy Bundle Resources hinzufügen, entsprechend https://.com/users/1292829/arne im Thread, Benutzerdefinierte Fonts Xcode 4.3 . Dies funktionierte für mich. Hier sind die Schritte, die ich für benutzerdefinierte Schriftarten in meiner App ausgeführt habe:

  1. Fügen Sie die Schriftart zu Ihrem Projekt hinzu. Ich zog die OTF (oder TTF ) Dateien in eine neue Gruppe, die ich erstellt hatte, und nahm die Entscheidung von xcode copying the files over to the project folder .
  2. Erstellen Sie das UIAppFonts Array mit Ihren Schriftarten, die im Array als Elemente aufgeführt sind. Nur die names , nicht die Erweiterung (zB " GothamBold ", " GothamBold-Italic ").
  3. Klicken Sie auf den project name oben im Project Navigator auf der linken Seite des Bildschirms.
  4. Klicken Sie auf die Registerkarte Build Phases , die im Hauptbereich von xcode angezeigt wird.
  5. Erweitern Sie den Abschnitt " Copy Bundle Resources " und klicken Sie auf "+" , um die Schriftart hinzuzufügen.
  6. Wählen Sie die Font-Datei aus dem Datei-Navigator, der geöffnet wird, wenn Sie auf das "+" klicken.
  7. Tun Sie dies für jede Schriftart, die Sie add to the project .

iOS 3.2 und höher unterstützen dies. Direkt aus dem Was ist neu in iPhone OS 3.2 doc:

Benutzerdefinierte Schriftartunterstützung
Anwendungen, die benutzerdefinierte Schriftarten verwenden möchten, können jetzt diese Schriftarten in ihr Anwendungspaket aufnehmen und diese Schriftarten mit dem System registrieren, indem sie den UIAppFonts-Schlüssel in ihre Info.plist-Datei aufnehmen. Der Wert dieses Schlüssels ist ein Array von Strings, die die Schriftartdateien im Paket der Anwendung identifizieren. Wenn das System den Schlüssel sieht, lädt er die angegebenen Schriftarten und stellt sie der Anwendung zur Verfügung.

Sobald die Fonts in der Info.plist , können Sie Ihre benutzerdefinierten Fonts wie jede andere Schriftart in IB oder programmatisch verwenden.

Es gibt einen laufenden Thread in den Apple Entwicklerforen:
https://devforums.apple.com/thread/37824 (Anmeldung erforderlich)

Und hier ist ein hervorragendes und einfaches 3-Schritte-Tutorial, wie Sie das erreichen können (defekter Link entfernt)

  1. Fügen Sie Ihre benutzerdefinierten Schriftartdateien zu Ihrem Projekt hinzu, indem Sie Xcode als Ressource verwenden
  2. Fügen Sie Ihrer Info.plist Datei einen Schlüssel hinzu, der als UIAppFonts .
  3. Machen Sie diesen Schlüssel zu einem Array
  4. UIAppFonts Sie für jede Schriftart, die Sie haben, den vollständigen Namen Ihrer Schriftartdatei (einschließlich der Erweiterung) als Elemente in das UIAppFonts Array ein
  5. Speichern Sie Info.plist
  6. Jetzt können Sie in Ihrer Anwendung einfach [UIFont fontWithName:@"CustomFontName" size:12] , um die benutzerdefinierte Schriftart für Ihre UILabels und UITextViews usw. zu verwenden.

Außerdem: Stellen Sie sicher, dass sich die Schriftarten in den Ressourcen für das Kopieren von Bundles befinden.


edit: Diese Antwort ist ab iOS3.2 nicht mehr gültig. Verwenden Sie UIAppFonts

Die einzige Möglichkeit, benutzerdefinierte UIFont erfolgreich zu laden, ist das private GraphicsServices-Framework.

Im Folgenden werden alle .ttf Schriftarten im .ttf der Anwendung geladen:

BOOL GSFontAddFromFile(const char * path);
NSUInteger loadFonts()
{
    NSUInteger newFontCount = 0;
    for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
        newFontCount += GSFontAddFromFile([fontFile UTF8String]);
    return newFontCount;
}

Sobald die Zeichensätze geladen sind, können sie wie die von Apple bereitgestellten Zeichensätze verwendet werden:

NSLog(@"Available Font Families: %@", [UIFont familyNames]);
[label setFont:[UIFont fontWithName:@"Consolas" size:20.0f]];

GraphicsServices können sogar zur Laufzeit geladen werden, falls die API in Zukunft nicht mehr vorhanden sein sollte:

#import <dlfcn.h>
NSUInteger loadFonts()
{
    NSUInteger newFontCount = 0;
    NSBundle *frameworkBundle = [NSBundle bundleWithIdentifier:@"com.apple.GraphicsServices"];
    const char *frameworkPath = [[frameworkBundle executablePath] UTF8String];
    if (frameworkPath) {
        void *graphicsServices = dlopen(frameworkPath, RTLD_NOLOAD | RTLD_LAZY);
        if (graphicsServices) {
            BOOL (*GSFontAddFromFile)(const char *) = dlsym(graphicsServices, "GSFontAddFromFile");
            if (GSFontAddFromFile)
                for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
                    newFontCount += GSFontAddFromFile([fontFile UTF8String]);
        }
    }
    return newFontCount;
}

Although some of the answers above are correct, I have written a detailed visual tutorial for people still having problems with fonts.

The solutions above which tell you to add the font to the plist and use

[self.labelOutlet setFont:[UIFont fontWithName:@"Sathu" size:10]];

are the correct ones. Please do now use any other hackish way. If you are still facing problems with finding font names and adding them, here is the tutorial -

Using custom fonts in ios application


One-liner for Swift 3+ for printing out all font names:

UIFont.familyNames.forEach { print(UIFont.fontNames(forFamilyName: $0)) }

You can add the required "FONT" files within the resources folder. Then go to the Project Info.plist file and use the KEY "Fonts provided by the application" and value as "FONT NAME".

Then you can call the method [UIFont fontwithName:@"FONT NAME" size:12];





fonts