当我按下屏幕顶部的按钮时,它没有反应

When I press the button at the top of the screen, it does not respond

我在 ContentView

中有这个结构 BarView()
struct ContentView: View {

var body: some View {
    
    NavigationView {
        VStack {
            
            BarView()
            AdsView()
            SelectTypeVideo()
            
            Spacer()
        }
        .ignoresSafeArea(.all) 
    }
  }
}

它的位置在屏幕的顶部

在某处navigationTitle

我在顶部放了一个切换到另一个屏幕的按钮

我发现的问题是当我按下屏幕顶部的任何按钮时它没有响应

例如当你离开顶部100距离时,按钮在你按下时响应

是在ContentView中使用NavigationView的原因

或者问题的原因是什么?

struct BarView: View {

@State var isSearch = false
var body: some View {
    
        HStack {
            
            ZStack {
                HStack {
                    
                    Button(action: { isSearch.toggle() }) { 

// All of these buttons do not respond when you press them

                        
                        ZStack {
                            Rectangle()
                                .fill(Color.white)
                                .cornerRadius(10)
                                .shadow(color: .black.opacity(0.2), radius: 10)
                                .frame(maxWidth: 35, maxHeight: 35)
                                .padding(.top, 25)
                            Image(systemName: "gear")
                                .padding(.top, 25).padding()
                                .foregroundColor(Color.black)
                                
                        }
                    }
                    Button(action: { isSearch.toggle() }) {

// All of these buttons do not respond when you press them
                        ZStack {
                            Rectangle()
                                .fill(Color.white)
                                .cornerRadius(10)
                                .shadow(color: .black.opacity(0.2), radius: 10)
                                .frame(maxWidth: 35, maxHeight: 35)
                                .padding(.top, 25)
                            Image(systemName: "magnifyingglass")
                                .padding(.top, 25).padding()
                                .foregroundColor(Color.black)
                        }
                    }
                }
            }
            Spacer()
            Text("Comidia")
                .padding(.top, 30).padding()
                .font(.title)
            
            
        }.padding(.top, 10)
    
        .ignoresSafeArea(.all)

        .popover(isPresented: $isSearch) {
            SearchBar()
        }
   }
}

由于 SelectTypeVideo() 之后的 Spacer(),您的 BarView()NavigationView 栏下方。 您可以尝试删除 Spacer(),或删除 NavigationView,或者如果您确实需要 NavigationView,请尝试使用 toolbar,例如这种方法:

struct ContentView: View {
    var body: some View {
        NavigationView {
            VStack {
                Spacer().frame(height: 120) // <-- adjust if need be
                AdsView()
                SelectTypeVideo()
                Spacer()
            }
            .toolbar { BarView() }  // <-- here 
            .ignoresSafeArea(.all)
        }
    }
}