输入和展开时使文本字段重叠文本

Make Textfield overlap text when input in entered and expanded

当我的“搜索字段”(带框架的文本字段)展开时,我正试图这样做,我希望它与 text/button 重叠。但相反,它会将 text/button 向下推。

我该如何更改? 我正在研究 som GeometryReader,但我的专业知识还不够。


Class

struct SearchView: View {

@ObservedObject var allGames = SearchController()

var body: some View {
    
    NavigationView{
        ZStack(alignment: .top) {
            Color("Color").edgesIgnoringSafeArea(.all)
            
            VStack{
                
                SearchBar(data: self.allGames.allGames)
                    .padding(.top) <--- This needs to overlap RandomGameView when expanded
                
                RandomGameView()
                    .padding(.top)

            }
        }
        .navigationBarTitle("Search")
        .padding(.top, -20)
    }
    .navigationViewStyle(StackNavigationViewStyle())
    .listStyle(PlainListStyle())
  }
}

如果它们在同一个 V 或 HStack 中,当一个视图增长时,它将推动该堆栈中的所有其他视图,所以如果你想让它越过顶部,请将它放在 ZStack 中。

NavigationView{
    ZStack(alignment: .top) {
        Color("Color").edgesIgnoringSafeArea(.all)
        
        ZStack(alignment: .top) { // Make this a top aligned ZStack.
            
            SearchBar(data: self.allGames.allGames)
                .padding(.top)
            
            RandomGameView()
                .padding(.top)

        }
    }
    .navigationBarTitle("Search")
    .padding(.top, -20)
}
.navigationViewStyle(StackNavigationViewStyle())
.listStyle(PlainListStyle())