我有一个SwiftUI项目。我想要一个MKMapView,上面有一些SwiftUI按钮。
因此,我定义了一个符合UIViewRepresentable协议的MapView结构。在我的ContentView中,我有以下内容:
ZStack {
MapView() {}
Button() {}
}
我期望将Button放置在MapView的顶部,但是这种行为非常奇怪。 它确实在顶部绘制了SwiftUI按钮,但是例如,点击手势并没有像我期望的那样在SwiftUI按钮上停止。它会传递到MapView。
“调试视图层次结构”在SwiftUI按钮的顶部显示了MapView。
我尝试了很多事情:在所有视图上手动设置.zIndex。 LayoutPriority。覆盖而不是ZStack。但是MapView始终位于最前面。无论尝试什么,我都无法获得想要的行为……这可能是SwiftUI错误,还是我缺少了某些东西?
可以在这里找到该项目:https://github.com/leontedev/Locally
答案 0 :(得分:1)
好吧...。我已经确定了问题……是SwiftUI按钮上的.shadow(radius:6)修饰符导致了此问题。这很奇怪...但是,至少我发现了这个问题。