1

我创建了@StateObject一个显示登录页面的位置:

@StateObject var loginViewModel = //LoginViewModel Name

并且有一个像这样的 Vstack 里面的按钮

VStack{

Button(action : {loginViewModel.show.toggle()} )

{
HStack{
Text("Button")
}

}. sheet (isPresented : $loginViewModel.show){
//View (passing viewModel)
}

}

问题是可点击区域现在已经扩散到了整个屏幕。那就是当我点击屏幕中的所有其他元素(屏幕中几乎所有地方)而不是那个按钮区域时,我得到了登录视图。

对此有什么解决方案并仅将按钮操作限制在该按钮周围吗?

4

1 回答 1

2

我为解决这个问题所做的是删除整个按钮并添加一个onTapGesture而不是那个。

我发现这样做的原因是当ZStacks视图中有多个时,在其中一个中注册的触摸事件将传递给当前在视图中的所有其他人。调整 ZIndex 没有帮助。另外,我不能限制对其他区域的触摸,因为它们上也有按钮。

例如:

HStack {
//Button Label Code
} .onTapGesture{

}//Button Action
于 2022-02-23T15:42:58.013 回答