[英]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.