在文本中添加无限行(SwiftUI)

Adding unlimited lines in a Text (SwiftUI)

只是弄清楚如何在 Text 中实现多行文本。似乎 TextUILabel 具有相同的默认值(一行),但我找不到任何符合此条件的函数。

struct ContentView : View {
    var body: some View {
        VStack(alignment: .leading, spacing: 10) {
            HStack {
                Text("Avocado Toast").font(.system(size: 24))
            }
            // This Text does cut, and I wonder how I can achieve multiple rows
            Text("Ingredients: Avocado, Almond Butter, Bread")
                .font(.system(size: 20))

        }
    }
}

编辑

.lineLimit(X),成功了。但是,是否可以不设置特定数量,例如。只有一个 0?

使用.lineLimit()限制文本行数。它接受一个可选的 Int (Int?) 作为参数,.lineLimit(nil) 允许无限行。

编辑:从 SwiftUI Beta 5 开始,Text 的默认行数限制为 nil,因此 Text 中的文本将换行默认情况下。

在表单中包装文本 .lineLimit(Int.max) 对我不起作用。似乎需要一些宽度才能知道何时换行。我相信官方的方式是 .fixedSize:

Text(message)
    .fixedSize(horizontal: false, vertical: true)

文档指出:

This example shows the effect of fixedSize(horizontal:vertical:) on a text view that is wider than its parent, preserving the ideal, untruncated width of the text view.

https://developer.apple.com/documentation/swiftui/view/fixedsize(horizontal:vertical:)

即使没有应用行限制,我的文本也一直被截断。将我的内容包装在 ScrollView {} 中解决了它。

在此处查看更多信息:https://www.hackingwithswift.com/quick-start/swiftui/how-to-add-horizontal-and-vertical-scrolling-using-scrollview

如果 lineLimit(nil) 不适合您,请尝试手动将 layoutPriority 设置为适合您的值 .layoutPriority(0.5)

Text("Professional Burnout and how to overcome it")
     .font(.callout)
     .fixedSize(horizontal: false, vertical: true)
     .frame(width: 220)

None 之前的答案对我有用,但 .lineLimit(Int.max) 成功了。