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