繁体   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