Visual List of iOS Fonts?
Categories:
A Comprehensive Visual Guide to iOS Fonts

Explore the vast array of fonts available on iOS, understand how to list them programmatically, and visualize their relationships and usage.
Choosing the right typeface is crucial for an app's aesthetics and user experience. iOS provides a rich collection of fonts, but finding and managing them can sometimes be a challenge. This article will guide you through programmatically listing all available fonts on an iOS device, understanding their family structures, and visualizing this information for easier selection and implementation.
Understanding iOS Font Families and Names
iOS organizes fonts into families, with each family potentially containing multiple font names (e.g., 'Helvetica Neue' is a family, and 'Helvetica Neue Light', 'Helvetica Neue Medium', 'Helvetica Neue Bold' are font names within that family). When working with UIFont
, you typically specify the font name, not just the family. It's important to differentiate between these two concepts to correctly apply fonts in your application.
flowchart TD A[Start] --> B{Get All Font Families} B --> C{Iterate Each Family} C --> D{Get Font Names for Family} D --> E[Display Font Name] E --> C C -- All Families Processed --> F[End]
Flowchart for programmatically listing iOS fonts
Programmatically Listing All Available Fonts
The UIFont
class in UIKit provides methods to access font information. You can retrieve a list of all font family names and then, for each family, get the individual font names. This is particularly useful for debugging, creating font pickers, or simply exploring the system's typographic capabilities.
import UIKit
func listAlliOSFonts() {
for familyName in UIFont.familyNames.sorted() {
print("\nFamily: \(familyName)")
for fontName in UIFont.fontNames(forFamilyName: familyName).sorted() {
print(" Font: \(fontName)")
}
}
}
listAlliOSFonts()
Swift code to print all available font families and their respective font names to the console.
Visualizing Font Relationships
Understanding the hierarchy of font families and their contained font names can be visually represented. This helps in grasping the structure and making informed decisions about font usage. Below is a conceptual diagram illustrating this relationship.
graph TD A[iOS System Fonts] --> B(Font Family 1) A --> C(Font Family 2) A --> D(Font Family N) B --> B1["Font Name 1 (Family 1)"] B --> B2["Font Name 2 (Family 1)"] C --> C1["Font Name 1 (Family 2)"] C --> C2["Font Name 2 (Family 2)"] C --> C3["Font Name 3 (Family 2)"] D --> D1["Font Name 1 (Family N)"]
Conceptual diagram showing the relationship between iOS system fonts, font families, and individual font names.
Using Custom Fonts in iOS Applications
Beyond the system fonts, you can also include custom fonts in your iOS application. This involves adding the font files to your project, declaring them in your Info.plist
file under the UIAppFonts
key, and then using UIFont(name:size:)
with the exact font name (usually the PostScript name) as you would with system fonts.