layoutPriority
layoutPriority 可以使我们手动控制视图的布局优先级。我们看看如下代码:
HStack {
Text("Hello")
Text("World")
Text("Stay Hungry, Stay Foolish")
// .layoutPriority(1)
}
.lineLimit(1)
.font(.title3)
在不打开注释处的代码时,最后的 Text 文字是会被压缩显示成省略号的。系统默认所有 View 的 layoutPriority 都是 0。如果我们将注释打开,赋予最后的 Text 较高的优先级,那么最后的 Text 就可以完全展示出来,而前面的两个 Text 可能会因为空间不足而被压缩。
fixedSize
fixedSize 可以将试图调整为理想的尺寸,比如我们有如下视图:
Text("Stay Hungry, Stay Foolish")
//.fixedSize()
.font(.title)
.frame(width: 200, height: 50)
.border(Color.blue)
.centerHorizontal()
在没有使用 fixedSize 的情况下,文本会被压缩,因为 200 * 50 的空间不足以展示所有文字。如果我们将注释处的代码打开,文本就可以完全展示了,因为 SwiftUI 会为该视图调整最理想的尺寸。
fixedSize 还能指定调整的方向:
func fixedSize(horizontal: Bool, vertical: Bool) -> some View
Bool 值为 true 时,表示要调整该方向上的尺寸。