当设备的宽度太长时,如何在SwiftUI中包装Text()?

mwr*_*ght 3 swiftui

我有以下内容,并希望将较长的文字换行

Text("Long label that needs to be able to wrap but isn't doing it yet.")
    .font(.largeTitle)
    .multilineTextAlignment(.center)
    .lineLimit(0)
Run Code Online (Sandbox Code Playgroud)

Nai*_*hta 8

两者.fixedSize.lineLimit(nil)应该有效。

 Text("Label text")
        .multilineTextAlignment(.leading)
        .fixedSize(horizontal: false, vertical: true)
Run Code Online (Sandbox Code Playgroud)

或者

 Text("Label text")
        .multilineTextAlignment(.leading)
        .lineLimit(nil)
Run Code Online (Sandbox Code Playgroud)

.fixedSize是 Apple 的首选/建议选项,用于将文本自动换行到下一行


mwr*_*ght 6

事实证明,您可以传递nil.lineLimit,它将Text()按需要进行包装。

Text("Long label that needs to be able to wrap but isn't doing it yet.")
    .font(.largeTitle)
    .multilineTextAlignment(.center)
    .lineLimit(nil)
Run Code Online (Sandbox Code Playgroud)

  • 我在“NavigationButton”实例内使用“Text”实例。当在此类容器内使用时,我没有看到“Text”实例从 β2 开始换行。您是否也见过这种行为? (3认同)