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,因为这是问题的根源。