如何将SwiftUI视图放置在UIKit(UIViewRepresentable)视图之上? (错误还是错误?)

时间:2019-11-18 12:49:38

标签: ios swift swiftui

我有一个SwiftUI项目。我想要一个MKMapView,上面有一些SwiftUI按钮。

因此,我定义了一个符合UIViewRepresentable协议的MapView结构。在我的ContentView中,我有以下内容:

ZStack {
  MapView() {}

  Button() {}
}

我期望将Button放置在MapView的顶部,但是这种行为非常奇怪。 它确实在顶部绘制了SwiftUI按钮,但是例如,点击手势并没有像我期望的那样在SwiftUI按钮上停止。它会传递到MapView。

“调试视图层次结构”在SwiftUI按钮的顶部显示了MapView。 enter image description here

我尝试了很多事情:在所有视图上手动设置.zIndex。 LayoutPriority。覆盖而不是ZStack。但是MapView始终位于最前面。无论尝试什么,我都无法获得想要的行为……这可能是SwiftUI错误,还是我缺少了某些东西?

可以在这里找到该项目:https://github.com/leontedev/Locally

1 个答案:

答案 0 :(得分:1)

好吧...。我已经确定了问题……是SwiftUI按钮上的.shadow(radius:6)修饰符导致了此问题。这很奇怪...但是,至少我发现了这个问题。