.font 修饰符在 SwiftUI 中的使用

231 阅读2分钟

.font 修饰符在 SwiftUI 中的使用

.font 是 SwiftUI 中用于控制文本样式的核心修饰符,它允许你设置文本的字体、大小、粗细和设计风格。

基本用法

1. 使用系统预设字体样式

Text("Hello, SwiftUI!")
    .font(.title)  // 使用系统标题字体

2. 自定义字体大小和粗细

Text("自定义字体")
    .font(.system(size: 24, weight: .bold))  // 系统字体,24pt,加粗

系统预设字体样式

SwiftUI 提供了一系列预设文本样式,会自动适配动态类型(Dynamic Type):

样式描述示例
.largeTitle最大标题34pt (默认)
.title标准标题28pt
.title2次级标题22pt
.title3三级标题20pt
.headline标题样式(半粗体)17pt (semibold)
.subheadline子标题15pt
.body正文字体(默认)17pt
.callout标注文本16pt
.footnote脚注13pt
.caption小标题12pt
.caption2更小的标题11pt

高级用法

1. 自定义字体家族

Text("自定义字体")
    .font(.custom("Avenir Next", size: 20))  // 使用特定字体

2. 结合字体设计

Text("圆角字体")
    .font(.system(.title, design: .rounded))  // 圆角设计

可用的设计选项:

  • .default - 默认设计
  • .serif - 衬线字体
  • .rounded - 圆角字体
  • .monospaced - 等宽字体

3. 动态类型支持

Text("支持动态类型")
    .font(.system(size: 16, weight: .regular, design: .default))
    .dynamicTypeSize(...DynamicTypeSize.xxxLarge)  // 限制动态类型范围

4. 字体粗细控制

Text("不同粗细")
    .fontWeight(.black)  // 单独控制粗细

可用的粗细选项:

  • .ultraLight
  • .thin
  • .light
  • .regular (默认)
  • .medium
  • .semibold
  • .bold
  • .heavy
  • .black

实际应用示例

1. 创建标题样式

VStack {
    Text("主标题")
        .font(.largeTitle.bold())
    
    Text("副标题")
        .font(.title2.weight(.medium))
        .foregroundColor(.secondary)
}

2. 表单中的字体使用

Form {
    Section {
        Text("设置选项")
            .font(.headline)
        
        Toggle("启用功能", isOn: $isEnabled)
            .font(.subheadline)
    }
}

3. 响应式字体大小

@State private var fontSize: CGFloat = 16

var body: some View {
    VStack {
        Slider(value: $fontSize, in: 12...36)
        Text("可调整的文字大小")
            .font(.system(size: fontSize))
    }
}

注意事项

  1. 字体可用性:使用 .custom 时确保字体已添加到项目中
  2. 国际化考虑:某些字体可能不支持所有语言
  3. 性能影响:过多自定义字体可能影响渲染性能
  4. 动态类型兼容:使用系统预设样式能更好支持无障碍功能

.font 修饰符是 SwiftUI 文本呈现的基础,合理使用可以创建既美观又功能完备的用户界面。