我想创建一个显示两行内容的文本视图,如果文本太多,要么截掉剩余的文本,要么在文本不够长甚至是空的情况下只显示一两行空行细绳。这是目前可能的吗?我可以创建自己的 Text 视图,以某种方式表现出这种行为吗?
对于该行限制,只需要两,使用.lineLimit(2)改性剂。
为了在空白时显示空白空间,您可以使用.frame()修饰符。但是,如果您需要找到两条线标签的确切高度并应用它,请在 a 中使用占位符,ZStack如下所示:
ZStack(alignment: .top) {
Text("\n ").hidden() // Just a place holder to hold required height to show two lines
Text("Text").lineLimit(2)
}
Run Code Online (Sandbox Code Playgroud)
根据评论更新
请记住,还有与 SwiftUI 的其他部分相关的其他问题,例如,如果您需要在 a 中使用它StackView,则必须指定 ,layoutPriority因为默认情况下不需要它。
NavigationView {
VStack {
ZStack(alignment: .top) {
Text("\n ").lineLimit(2)
Text("Text").lineLimit(2)
}.layoutPriority(1000)
NavigationLink(destination: Text("Destination")) {
Text("Next")
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你看到 SwiftUI 喜欢修剪多余的空格,你可以在占位符中使用隐藏字符来保留它。如果需要,请使用它:
(Text("?????? ")+Text("\n")+Text("??? ")).lineLimit(2)
Run Code Online (Sandbox Code Playgroud)
请注意,第一个和最后一个Text包含一个特殊的隐藏字符。
而且是,你可以追加文本一起。
| 归档时间: |
|
| 查看次数: |
914 次 |
| 最近记录: |