SwiftUI中文本的自定义字体大小

gijlo24d  于 2023-03-17  发布在  Swift
关注(0)|答案(6)|浏览(264)

我有一个标签在我的看法,我想使用系统字体大小在中等,与大小的21点。
我创建了一个自定义扩展来重用创建的字体:

extension Font {
    static var primaryButton: Font {
        return Font.custom("SFUIDisplay-Light", size: 21)
    }
}

但是,这没有任何效果,我将字符串更改为HelveticaNeue-UltraLight,它确实工作了,所以我猜测SFUIDisplay-Light只是不正确的字体名称。
在字体书中,它说SFProText-Light,但这对我也不起作用。
SwiftUI中弗朗西斯科字体的正确字体名称是什么?
或者:如何使用系统字体设置字体大小?

hiz5n14c

hiz5n14c1#

可以使用以下命令设置系统字体的显式大小:

.font(.system(size: 60))
qvsjd97n

qvsjd97n2#

您可以像这样设置自定义字体大小,

.font(.custom("FONT_NAME", size: 20))
insrf1ej

insrf1ej3#

Text("Default font design").font(Font.system(size:30, design: .default))
Text("Monospaced font design").font(Font.system(size:30, design: .monospaced))
Text("Rounded font design").font(Font.system(size:30, design: .rounded))
Text("Serif font design").font(Font.system(size:30, design: .serif))

Text("Large Title").font(.largeTitle)
Text("Title").font(.title)
Text("Headline").font(.headline)
Text("SubHeadline").font(.subheadline)
Text("Body").font(.body)
Text("Callout").font(.callout)
Text("Caption").font(.caption)
Text("FootNote").font(.footnote)

Text("Custom font").font(Font.custom("OpenSans-Bold", size: 12.3))

更多详情请关注:https://github.com/arjun011/SwiftUI-Controls

hrirmatl

hrirmatl4#

如果你想为你的文本设置一个自定义字体,比如Helvetica Neue,那么在这种情况下,你可以这样做

Text("Hello World")
.font(.custom("Helvetica Neue", size: 20))

如果你只想使用系统字体,那么在这种情况下,你可以这样做

Text("Hello World")
.font(.system(size: 20, weight: .light, design: .default))
vyswwuz2

vyswwuz25#

// Using system font "San Francisco"
let fontSystem = Font.system(size: 13.0)

// Using installed custom font
let fontCustom = Font.custom("YOUR FONT NAME", size: 13.0)

您可以将font*常量放在需要设置字体样式的位置。
https://developer.apple.com/documentation/swiftui/font中的“获取系统字体”部分阅读更多信息

bnl4lu3b

bnl4lu3b6#

如果您像我一样搜索一个选项来添加具有特定大小的系统字体,这也适用于动态类型:

//Usage:
Text("Hello World").systemFont(size: 8.0, relativeTo: .caption, weight: .semibold)

extension View {
    func systemFont(size: CGFloat, relativeTo textStyle: Font.TextStyle, weight: Font.Weight = .regular) -> some View {
        modifier(SystemText(size: size, relativeTo: textStyle, weight: weight))
    }
}
struct SystemText: ViewModifier {
    @ScaledMetric var fontSize: CGFloat
    private let weight: Font.Weight

    init(size: CGFloat, relativeTo textStyle: Font.TextStyle, weight: Font.Weight = .regular) {
        _fontSize = ScaledMetric(wrappedValue: size, relativeTo: textStyle)
        self.weight = weight
    }

    func body(content: Content) -> some View {
        content.font(.system(size: fontSize).weight(weight))
    }
}

相关问题