在 SwiftUI 中,Text 控件用于显示简单的文本、动态数据、格式化的字符串等。Text 控件有丰富的修饰符,可以帮助你自定义文本的样式和排版,使其适应不同的设计需求。
Tips: Text 组件相当于 UILabel。
- 基本用法
最简单的 Text 使用方式是直接显示一个字符串:
Text("Hello, SwiftUI!")
- 显示变量和动态内容
可以在 Text 中显示变量值或动态生成的内容:
struct ContentView: View {
var name = "Alice"
var body: some View {
Text("Hello, \(name)!")
}
}
- 多行文本
Text 控件会自动适应内容,支持多行显示。可以通过 .lineLimit(_:) 来设置最大行数:
Text("SwiftUI 是苹果公司推出的一个新的用户界面框架...")
.lineLimit(2) // 最多显示 2 行,多出的部分会省略
- 文本样式
SwiftUI 提供了许多修饰符,可以让你轻松自定义文本样式:
• 字体:使用 .font(_:) 设置字体样式,例如 .largeTitle、.headline、.caption 等。
Text("标题").font(.largeTitle)
Text("小标题").font(.headline)
• 字体颜色:使用 .foregroundColor(_:) 设置字体颜色。
Text("警告").foregroundColor(.red)
• 字体粗细:使用 .fontWeight(_:) 设置字体粗细。
Text("加粗字体").fontWeight(.bold)
• 斜体:使用 .italic() 将字体设置为斜体。
Text("斜体文字").italic()
• 下划线和删除线:使用 .underline() 和 .strikethrough() 添加下划线和删除线。
Text("下划线").underline()
Text("删除线").strikethrough()
• 字间距和行间距:使用 .kerning(_:) 设置字间距,使用 .lineSpacing(_:) 设置行间距。
Text("字距调整").kerning(2)
Text("行间距调整\n适用于多行文本").lineSpacing(10)
- 富文本
可以通过 + 运算符拼接多个 Text 视图来实现富文本效果:
Text("SwiftUI ").font(.headline) +
Text("Text 控件").font(.largeTitle).foregroundColor(.blue) +
Text(" 用法").font(.subheadline).foregroundColor(.gray)
- 本地化支持
SwiftUI 的 Text 支持自动本地化。使用字符串键的形式创建 Text,可以自动匹配 Localizable.strings 文件中的内容:
Text("welcome_message") // 如果本地化文件中有 "welcome_message" 键值,会显示对应的翻译内容
总结
SwiftUI 的 Text 控件具有高度的灵活性和丰富的样式选项,可满足从简单文本到复杂富文本的多种需求。通过不同的修饰符组合,可以快速自定义文本样式,使其适配各种 UI 设计。