in Cocoa, Objective-C, Programming, UIKit

Custom fonts on iPad and iPhone

Just incase you didn’t realise, with iOS 3.2 (iPad) and above you can load in custom fonts and use them with a standard UIFont object. There are a few catches… The font must be in the following format: –

  • OpenType Format (OTF)
  • TrueType Format (TTF)

Once you’ve dragged your chosen font file into an Xcode project, the next step is to add a line into the application’s Info.plist file. Add a new key UIAppFonts and make it an array. Expand the array and add a new string for each font, making the string the file’s full name including an extension.

Xcode Screenshot

You’re all set up now to use the font. That would be great if you knew which font it was! Here is a great little snippet for looping through all the fonts loaded into the system. Scan through the list and find your font.

To use your font now, just use the standard UIFont constructor…

Some points to note: –

  • You can also use the font inside UIWebViews.
  • Interface Builder for XCode 3.2 has a bug that won’t let you choose the font. You have to do it in code.
  • Loading in too many fonts will slow your loading time down and will hurt your users’ eyes.

Write a Comment


  1. I am finding an odd issue with this feature involving the order in which those strings are added to the UIAppFonts array. I am using two .otf files that represent two different font styles in the same family (Knockout-27.otf and Knockout-30.otf) as well as MyriadPro.otf. Using your code snippet I can see that all 3 of these custom fonts are available for the UIFont class. However, when trying to set these fonts, the two that are of the same family will not show up distinctly. What I mean is that I use them in two differently places in the App so I need both, but if I have Knockout-27.otf first in the array, then all labels that should have had fonts from the Knockout family use that style. If I put Knockout-30.otf in the file first, vice-versa. has anyone else experienced this problem? Where else can I look for a solution. It happens on device and in the simulator, in iOS4.1 and iOS4.2.

    • UPDATE: found a discussion on Apple’s dev forums that confirms that others have faced this issue. Seems to be a bug with no known workaround right now. I even tried converting my .otf files to .ttf and seeing if they were handled any differently, but that did not fix it either.

  2. Hey,

    I want to use the capitals.dfont in xcode
    capitals is a basic mac font, which can be found in fontlibrary app.
    I am using xcode 4.3.3 and building for iphone.
    I only work with storyboard so please help me with very easy instructions


  3. when is add custom font file value in the info.plist and run the app in simulator;my simulator get hang in attaching to app name;after that app does not run over simulator. i am using xcode 4.3.1 ios 5.1