设置为抵抗时,SwiftUI 文本被截断?

Posted

技术标签:

【中文标题】设置为抵抗时,SwiftUI 文本被截断?【英文标题】:SwiftUI Text being truncated when set to resist? 【发布时间】:2020-06-25 14:33:58 【问题描述】:

我有以下组件:

Text(booking.endDate!, style: .relative)
                    .font(.system(.title, design: .rounded))
                    .foregroundColor(Color(.jpGreen))
                    .fixedSize(horizontal: true, vertical: false)

这是对格式为小时和分钟的日期的倒计时,但是在界面中它会以不规则的间隔随机截断,例如

如果我已经应用了固定大小的属性,我该如何进一步使它永远不会被截断?

【问题讨论】:

这能回答你的问题吗? How to scale text to fit parent view with SwiftUI? 无法在 Xcode 12 中重现,只有 ContentView 中的代码快照。您能提供更多背景信息吗? 它在一个 VStack 中,在一个 HStack 中有 2 个 VStack,如果有帮助,我是 swiftui 的新手,所以不确定需要什么信息 【参考方案1】:

您可以通过添加来避免这种情况 .allowsTightening(true) 发给你的短信。

根据空间大小,应用它甚至可能无法完全发挥作用 可以收紧。

来源:Mark Moeykens's book

编辑:您还可以允许 SwiftUI 缩放文本以适应可用空间。

例如,尝试使用minimumScaleFactor,它需要一个介于 0 和 1 之间的值。

【讨论】:

我在答案中添加了另一个选项【参考方案2】:

像这样简单地在末尾添加 .padding(.horizo​​ntal) 怎么样。

Text("...").padding(.horizontal)

【讨论】:

以上是关于设置为抵抗时,SwiftUI 文本被截断?的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 嵌入 ScrollView 后文本被截断

SwiftUI:VStack中的VStack,标签被截断

文本视图的 lineBreakMode 是不是有 SwiftUI 等效项?

反应原生,当我设置图像样式时文本被截断

ScrollView 中的多行文本被截断

SwiftUI 截断 ForEach 的内容