Skip to content

Instantly share code, notes, and snippets.

@zwang
Last active March 23, 2022 12:33
Show Gist options
  • Save zwang/7260bfad8a9fa75b61c3 to your computer and use it in GitHub Desktop.
Save zwang/7260bfad8a9fa75b61c3 to your computer and use it in GitHub Desktop.
Dynamically load font from a font file in swift in IOS
static func loadFont(fontName: String, baseFolderPath: String) -> Bool {
let basePath = baseFolderPath as NSString
let fontFilePath = basePath.stringByAppendingPathComponent(fontName)
let fontUrl = NSURL(fileURLWithPath: fontFilePath)
if let inData = NSData(contentsOfURL: fontUrl) {
var error: Unmanaged<CFError>?
let cfdata = CFDataCreate(nil, UnsafePointer<UInt8>(inData.bytes), inData.length)
if let provider = CGDataProviderCreateWithCFData(cfdata) {
if let font = CGFontCreateWithDataProvider(provider) {
if (!CTFontManagerRegisterGraphicsFont(font, &error)) {
Logger.info("Failed to load font: \(error)")
}
return true
}
}
}
return false
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment