VStack 中的视图重叠
Views in VStack overlapping
所以我在使用 VStack 中的 TopBar 视图时遇到了问题 -- 它一直与我在其下方的图像重叠,并弄乱了该视图的其余格式。我查看了类似的线程并实际上解决了我遇到的图像问题,但我没有看到与组合视图类似的问题。 (而且我还在读高中,所以我确定事情很混乱和令人费解)
Without TopBar WithTopBar
内容视图:
ScrollView {
VStack{
Text("Sample Text")
.padding(.top, 50)
TopBar()
Image("Divider")
.resizable()
.scaledToFill()
.frame(width: geometry.size.width * 0.8,
}
}
顶栏:
VStack{
Spacer()
Menu("Menu") {
Button("A", action: {print("test")})
Button("B", action: {print("test")})
Button("C", action: action: {print("test")})
}
.frame(width: geometry.size.width * 0.8, alignment: .leading)
Menu("Menu 2") {
Button("E", action: {print("test")})
Button("F", action: {print("test")})
Button("G", action: {print("test")})
}
.frame(maxWidth: .infinity, minHeight: 50)
Spacer()
}
}
}
我正在回答我自己的问题,以防有人无意中发现这个问题。出于某种原因,我只需要将每个菜单嵌入到一个单独的 VStack 中。不过,您应该避免使用 geometryreader,因为这是问题的根源。
所以我在使用 VStack 中的 TopBar 视图时遇到了问题 -- 它一直与我在其下方的图像重叠,并弄乱了该视图的其余格式。我查看了类似的线程并实际上解决了我遇到的图像问题,但我没有看到与组合视图类似的问题。 (而且我还在读高中,所以我确定事情很混乱和令人费解)
Without TopBar WithTopBar
内容视图:
ScrollView {
VStack{
Text("Sample Text")
.padding(.top, 50)
TopBar()
Image("Divider")
.resizable()
.scaledToFill()
.frame(width: geometry.size.width * 0.8,
}
}
顶栏:
VStack{
Spacer()
Menu("Menu") {
Button("A", action: {print("test")})
Button("B", action: {print("test")})
Button("C", action: action: {print("test")})
}
.frame(width: geometry.size.width * 0.8, alignment: .leading)
Menu("Menu 2") {
Button("E", action: {print("test")})
Button("F", action: {print("test")})
Button("G", action: {print("test")})
}
.frame(maxWidth: .infinity, minHeight: 50)
Spacer()
}
}
}
我正在回答我自己的问题,以防有人无意中发现这个问题。出于某种原因,我只需要将每个菜单嵌入到一个单独的 VStack 中。不过,您应该避免使用 geometryreader,因为这是问题的根源。