Swiftui 使文本元素始终为“;“两行”;
我有一个像这样的垂直堆栈Swiftui 使文本元素始终为“;“两行”;,swiftui,swiftui-text,Swiftui,Swiftui Text,我有一个像这样的垂直堆栈 VStack Text(lineA) .lineLimit(2) Text(lineB) Text(lineC) } 别问我为什么。我的老板决定,他们希望第一个文本总是有两行,即使lineA变量没有字符使文本增长到两行 有没有一种方法可以使第一个文本在两行的情况下进行渲染,并且在超过两行的情况下仍然显示保留 我可以看到使用一个框架来实现这一点,有点像自杀,将高度固定在不同设备的点上 有没有致命性更低的解决方案?这里是可能的解决方案(使用Xcod
VStack
Text(lineA)
.lineLimit(2)
Text(lineB)
Text(lineC)
}
别问我为什么。我的老板决定,他们希望第一个文本总是有两行,即使lineA变量没有字符使文本增长到两行
有没有一种方法可以使第一个文本在两行的情况下进行渲染,并且在超过两行的情况下仍然显示保留
我可以看到使用一个框架来实现这一点,有点像自杀,将高度固定在不同设备的点上
有没有致命性更低的解决方案?这里是可能的解决方案(使用Xcode 12.4/iOS 14.4测试)
继@Asperi
绝妙的想法之后,我测试了另一个更适合我的选项:
var body: some View {
VStack {
Text("asdfasfdasfasfasfafddafas\n")
.lineLimit(2)
.foregroundColor(.black)
.frame(maxWidth: .infinity)
Text("lineB")
Text("lineC")
}
}
这将使它成为两行,即使文本只能容纳一行,并且如果文本超过两行,将添加网线。在哪个位置断开lineA
?第一个文本元素应使用所有可用的水平大小,并在单词处断开您可以使用的。。。对我来说,这真是太聪明了太精彩了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
var body: some View {
VStack {
Text("asdfasfdasfasfasfafddafas\n")
.lineLimit(2)
.foregroundColor(.black)
.frame(maxWidth: .infinity)
Text("lineB")
Text("lineC")
}
}