首页 > 解决方案 > 添加自定义字体作为字体类型 SwiftUI 的扩展

问题描述

首先要明确的是,我不是在问如何将自定义字体添加到 SwiftUI,我是在问如何使用自定义字体扩展字体类型。

例如,我正在使用自定义字体Manrope。我将 ttf 文件添加到我的项目中,并将其添加到我的信息 plist 中。当前我必须使用这样的字体:

.font(.custom("Manrope-SemiBold", size: 24))

我想知道我是否可以扩展字体以便我可以像这样使用 Manrope

.font(.manrope.semibold())

或者

.font(.manrope("Semibold"))

标签: swiftfontsswiftui

解决方案


您可以将自定义字体声明为 Font 上的静态计算属性:

extension Font {
    
    static var myCustomFont: Font {
        Font.custom("Manrope-SemiBold", size: 24)
    }
    
}

甚至更好地支持动态类型:

extension Font {

    static var myCustomFont: Font {
        Font.custom("Manrope-SemiBold", size: 24, relativeTo: .title2)
    }
}

然后你可以像预定义系统字体一样使用它:

Text("Example")
    .font(.myCustomFont)

推荐阅读