✒️

[SwiftUI] URLから取得したFontを使う

2021/02/18に公開

以下の方法でURLからフォントをダウンロードしてSwiftUIのFontに変換できます。

    import CoreText
    import SwiftUI
    
    func loadFont(url: URL) {
        let session = URLSession(configuration: .default, delegate: nil, delegateQueue: nil)
        let request = URLRequest(url: url)
        let task = session.dataTask(with: request){ (data: Data?, response: URLResponse?, error: Error?) in
            if let error = error{
                print("Failure: ", error.localizedDescription)
                return
            }
            if let fontData = (data as CFData?),
               let dataProvider = CGDataProvider(data: fontData),
               let cgFont = CGFont(dataProvider)
            {
                let ctFont = CTFontCreateWithGraphicsFont(cgFont, UIFont.labelFontSize, nil, nil)
                let font = Font(ctFont) //SwiftUI.Font
            }else{
                print("Failure")
            }
        }
        task.resume()
    }

端末へのインストールまでできると完璧なのですが、どうやるんだろう・・・。

Discussion