连字符 SwiftUI 文本

J--*_*J-- 8 text textview swift swiftui swiftui-text

如何向 SwiftUI 文本添加连字符?目前,SwiftUI 在没有空间的情况下会生成一个段落,但这会使所有内容难以阅读且混乱。

在此输入图像描述

我做了一些研究,似乎没有本地方法。还有其他方法可以实现这一目标吗?

Asp*_*eri 5

一种可能的方法是在需要连字符的位置显式添加“软连字符”unicode 符号。

\n

这是一个演示。使用 Xcode 12.4 / iOS 14.4 准备

\n

情况一:空间足够

\n
Text("Minded\xc2\xad\xc2\xad\xc2\xad\\u{AD}ness")\n    .frame(width: 180)        // << wide frame\n    .border(Color.black)\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

情况2:空间有限

\n
Text("Minded\xc2\xad\xc2\xad\xc2\xad\\u{AD}ness")\n    .frame(width: 80)        // << limited frame\n    .border(Color.black)\n
Run Code Online (Sandbox Code Playgroud)\n

演示2

\n

注意:预览版无法理解此类 unicode 符号,因此请在模拟器或真实设备上进行测试

\n

  • 抱歉,这不是一个可接受的解决方案。使用 UIKit,您可以通过属性字符串和“NSMutableParagraphStyle.hyphenationFactor”添加,必须与 swiftUI 中类似 (4认同)