2
我想以swift 3以編程方式註冊字體。下面是我用來安裝字體的一段代碼。我試圖安裝的字體是Oswald無法在Swift 3中以編程方式註冊字體
func installFonts(_ fonts: [String]){
for i in 0 ..< fonts.count{
let font = fonts[i].components(separatedBy: ".")
let fontPath = Bundle.main.url(forResource: font[0], withExtension: font[1])!
var error: Unmanaged<CFError>?
if let dataProvider = CGDataProvider(url: fontPath as CFURL) {
let font = CGFont(dataProvider)
if (!CTFontManagerRegisterGraphicsFont(font, &error)) {
print(error.debugDescription)
}
}
}
}
無字體的獲取安裝和錯誤描述狀態:
Optional(Swift.Unmanaged<__ObjC.CFError>(_value: Error Domain=com.apple.CoreText.CTFontManagerErrorDomain Code=105 \"Could not register the CGFont \'<CGFont (0x6100000d9f30): Oswald-Bold>\'\" UserInfo={NSDescription=Could not register the CGFont \'<CGFont (0x6100000d9f30): Oswald-Bold>\', CTFailedCGFont=<CGFont (0x6100000d9f30): Oswald-Bold>}))
你是絕對正確的。字體文件有問題 - 奧斯瓦爾德。用我的代碼正確安裝了「COMICATE」字體。 –
爲什麼有些字體不能在iOS上安裝?我從谷歌官方網站下載了這些文件,當我通過plist進行操作時,這些文件似乎可以正常工作。 –