当我按下屏幕顶部的按钮时,它没有反应
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)
}
}
}
我在 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)
}
}
}