只是弄清楚如何在一个文本中实现多行文本Text。似乎的Text默认值与UILabel(一行)相同,但是我找不到符合此条件的任何函数。
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))
}
}
}
Run Code Online (Sandbox Code Playgroud)
.lineLimit(X),做到了。但是,例如,可以不设置特定的数量。只有0?
Dar*_*ary 19
用这个:
Text("Ingredients: Avocado, Almond Butter, Bread")
.lineLimit(nil)
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,请使用以下方法:
Text("Ingredients: Avocado, Almond Butter, Bread")
.fixedSize(horizontal: false, vertical: true)
Run Code Online (Sandbox Code Playgroud)
RPa*_*l99 11
使用.lineLimit()限制文本行的数量。它以可选的Int(Int?)作为参数,并.lineLimit(nil)允许无限制的行。
编辑:自SwiftUI Beta 5起,Text默认行限制为nil,因此默认情况下,文本Text将自动换行。
对于将文本包装在表单.lineLimit(Int.max)中对我不起作用。似乎需要一定的宽度才能知道何时包装。我相信官方方式是.fixedSize:
Text(message)
.fixedSize(horizontal: false, vertical: true)
Run Code Online (Sandbox Code Playgroud)
该文档指出:
本示例显示了fixedSize(horizontal:vertical :)在比其父级更宽的文本视图上的效果,并保留了文本视图的理想的,截断的宽度。
我必须添加 2 个不同的修饰符才能使其正常工作:
Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam pharetra neque ex, at consectetur leo semper eu. Ut finibus maximus ex et maximus. Proin vel sagittis sapien, sed tincidunt orci.")
.frame(maxWidth: .infinity, alignment: .leading)
.fixedSize(horizontal: false, vertical: true)
Run Code Online (Sandbox Code Playgroud)
如果您不添加frame,它将使您的文本超出屏幕范围,并fixedSize允许多行可见
小智 5
Text("Professional Burnout and how to overcome it")
.font(.callout)
.fixedSize(horizontal: false, vertical: true)
.frame(width: 220)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2554 次 |
| 最近记录: |