iOS 应用程序的非捆绑外部字体

Non-bundle external fonts for iOS Application

如何在我的 iOS 应用程序中使用非捆绑自定义字体?我想通过 iCloud 或互联网将字体添加到应用程序并在内部使用它。

是的,您可以通过

CTFontManagerRegisterGraphicsFont

(https://developer.apple.com/documentation/coretext/1499499-ctfontmanagerregistergraphicsfon)

您只需要对文件或数据的引用。代码应该是自我解释的:

guard let fontData = NSData(contentsOfFile: pathForResourceString) else {
    fatalError("[UIFont] Could not get data of font")
}

guard let dataProvider = CGDataProvider(data: fontData) else {
    fatalError("[UIFont] Could not get dataprovider of font")
}

guard let fontRef = CGFont(dataProvider) else {
    fatalError("[UIFont] Could not create font")
}

var errorRef: Unmanaged<CFError>?
if CTFontManagerRegisterGraphicsFont(fontRef, &errorRef) == false {
    fatalError("[UIFont] Could not register font")
}

然后您可以通过名称访问该字体,就像它在捆绑包中一样。