Spacer
?SwiftUI
的 Spacer
视图会自动填充其扩展轴上的所有可用空间,这是一种奇特的说法,即根据您放置的内容,它们在水平或垂直方向上会占用尽可能多的空间。
如果要制作一个精确大小的间隔物,只需执行与其他视图相同的操作即可:使用具有您想要的精确大小的 frame()
修饰符。
例如,这显示了两个文本视图,它们之间有一个 50
点的空格:
VStack {
Text("First Label")
Spacer()
.frame(height: 50)
Text("Second Label")
}
如果给定间隔符一个值的范围,例如使用 .frame(minHeight:50,maxHeight:500)
,则它将自动占用尽可能多的空间,直到您设置的最大值。 通常,以这种方式添加一些灵活性是一个好主意,这样您的用户界面就可以更轻松地跨设备扩展。
在某些情况下,您需要指定与布局方向无关的间隔符大小,例如,如果您的视图有时可能位于 HStack
或 VStack
中,并且您希望间隔符添加 50
个点而不管其方向如何。
在这种情况下,应使用 minLength
初始化程序,如下所示:
VStack {
Text("First Label")
Spacer(minLength: 50)
Text("Second Label")
}
注意:这是最小长度,因此如果有可用空间,则间隔物仍会变大。