2017-05-31 10 views
2

swift 3でプログラムでフォントを登録しようとしています。ここではフォントのインストールに使用しているコードを示します。Swift 3でフォントをプログラムで登録することができません

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>}))

答えて

2

それはあなたのフォントが動作していないことが考えられます。私がインストールしようとしていますフォントがインストールされ、エラーの説明の状態を取得フォントのいずれOswald

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) 
      } 
     } 
    } 
} 

ではありません。私は非常に似たようなことを試してみました。 TTFフォントダウンロード

  1. :私は行う

    class ViewController: UIViewController { 
    
    override func viewDidLoad() { 
        super.viewDidLoad() 
        if (installFont("comicate")) { 
         print("Font installed") 
        } 
    } 
    
    @discardableResult 
    func installFont(_ font:String) -> Bool { 
    
        guard let fontUrl = Bundle.main.url(forResource: font, withExtension: "ttf") else { 
         return false 
        } 
    
        let fontData = try! Data(contentsOf: fontUrl) 
    
        if let provider = CGDataProvider.init(data: fontData as CFData) { 
    
         var error: Unmanaged<CFError>? 
    
         let font:CGFont = CGFont(provider) 
         if (!CTFontManagerRegisterGraphicsFont(font, &error)) { 
          print(error.debugDescription) 
          return false 
         } else { 
          return true 
         } 
        } 
        return false 
    } 
    

    }

:Xcodeのにドラッグhttp://dl.dafont.com/dl/?f=comicate

  • を、
  • 次のコード蘭ターゲットに追加実際には「フォントがインストールされました」と表示されます。

  • +0

    本当に正しいですか?フォントファイル - Oswaldに問題があります。 "COMICATE"フォントが自分のコードで正しくインストールされています。 –

    +0

    iOSにフォントがインストールされないのはなぜですか?私は公式のGoogleのウェブサイトからそれらをダウンロードし、ファイルは私がplistでそれを行うときに動作するようです。 –

    関連する問題