SwiftUI 基础控件 - Text

637 阅读2分钟

在 SwiftUI 中,Text 控件用于显示简单的文本、动态数据、格式化的字符串等。Text 控件有丰富的修饰符,可以帮助你自定义文本的样式和排版,使其适应不同的设计需求。

Tips: Text 组件相当于 UILabel。

  1. 基本用法

最简单的 Text 使用方式是直接显示一个字符串:

Text("Hello, SwiftUI!")
  1. 显示变量和动态内容

可以在 Text 中显示变量值或动态生成的内容:

struct ContentView: View {
    var name = "Alice"
    
    var body: some View {
        Text("Hello, \(name)!")
    }
}
  1. 多行文本

Text 控件会自动适应内容,支持多行显示。可以通过 .lineLimit(_:) 来设置最大行数:

Text("SwiftUI 是苹果公司推出的一个新的用户界面框架...")
    .lineLimit(2) // 最多显示 2 行,多出的部分会省略
  1. 文本样式

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)
  1. 富文本

可以通过 + 运算符拼接多个 Text 视图来实现富文本效果:

Text("SwiftUI ").font(.headline) +
Text("Text 控件").font(.largeTitle).foregroundColor(.blue) +
Text(" 用法").font(.subheadline).foregroundColor(.gray)
  1. 本地化支持

SwiftUI 的 Text 支持自动本地化。使用字符串键的形式创建 Text,可以自动匹配 Localizable.strings 文件中的内容:

Text("welcome_message") // 如果本地化文件中有 "welcome_message" 键值,会显示对应的翻译内容

总结

SwiftUI 的 Text 控件具有高度的灵活性和丰富的样式选项,可满足从简单文本到复杂富文本的多种需求。通过不同的修饰符组合,可以快速自定义文本样式,使其适配各种 UI 设计。