.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))
}
}
注意事项
- 字体可用性:使用
.custom时确保字体已添加到项目中 - 国际化考虑:某些字体可能不支持所有语言
- 性能影响:过多自定义字体可能影响渲染性能
- 动态类型兼容:使用系统预设样式能更好支持无障碍功能
.font 修饰符是 SwiftUI 文本呈现的基础,合理使用可以创建既美观又功能完备的用户界面。