SwiftUI 的 allowsTightening
是用于控制文本在布局时是否允许压缩字符间距以适应空间的修饰符。当文本内容因空间不足可能被截断时,启用此属性可以让系统自动调整字符间距,尝试将文本完整显示在一行中。其作用类似于排版中的“字距微调”,但更强调动态适应布局约束。
使用场景 #
- 空间有限时避免截断:例如按钮标题、标签等需要完整显示但空间紧张的场景。
- 优先保持单行显示:当文本稍长但希望避免换行时,可通过压缩字符间距优化显示效果。
示例代码 #
Text("Hello, SwiftUI! This is a long text.")
.allowsTightening(true) // 允许压缩字符间距
.lineLimit(1) // 限制为单行显示
注意事项 #
- 需结合
lineLimit(1)
使用,否则文本可能直接换行而非压缩间距。 - 压缩幅度由系统自动决定,开发者无法直接控制具体压缩值。
- 对中文等非字母语言的效果可能不如英文明显(因字符结构差异)。