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")
}
然后您可以通过名称访问该字体,就像它在捆绑包中一样。
如何在我的 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")
}
然后您可以通过名称访问该字体,就像它在捆绑包中一样。