簡體   English   中英

如何更改 Xcode Swift Playgrounds(.swiftpm) 項目中的字體?

[英]How to change font in Xcode Swift Playgrounds(.swiftpm) project?

如何在新的 Xcode Swift Playgrounds 項目中實現自定義字體? 在簡單的 Xcode App 項目中,我們導入字體並將其添加到 info plist(應用程序提供的字體)中,但是在這種類型的項目中沒有 info plist,我該怎么辦?

我在朋友的幫助下自己找到了解決方案,我必須使用 fileprivate static func 創建一個公共結構 MyFont,然后在主文件中添加一個 init,在 var body 之前。

這是代碼:

我的字體

import SwiftUI

public struct MyFont {
    public static func registerFonts() {
        registerFont(bundle: Bundle.main , fontName: "YOUR-FONT-HERE", fontExtension: ".ttf") //change according to your ext.
    }
    fileprivate static func registerFont(bundle: Bundle, fontName: String, fontExtension: String) {
        
        guard let fontURL = bundle.url(forResource: fontName, withExtension: fontExtension),
              let fontDataProvider = CGDataProvider(url: fontURL as CFURL),
              let font = CGFont(fontDataProvider) else {
            fatalError("Couldn't create font from data")
        }
        
        var error: Unmanaged<CFError>?
        
        CTFontManagerRegisterGraphicsFont(font, &error)
    }
}

我的應用

@main
struct MyApp: App {

    //add the init before var body
    init() {
        MyFont.registerFonts()
    }
    
    var body: some Scene {
        //
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM