ios - 如何将 SwiftUI View 放置在 UIKit (UIViewRepresentable) View 之上? (错误或错误?)

标签 ios swift swiftui

我有一个 SwiftUI 项目。我想要一个顶部有一些 SwiftUI 按钮的 MKMapView。

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

ZStack {
  MapView() {}

  Button() {}
}

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

Debug View Hierarchy 显示 SwiftUI 按钮顶部的 MapView。 enter image description here

我尝试了很多方法:在所有 View 上手动设置 .zIndex。布局优先级。 Overlay 代替 ZStack。但 MapView 始终位于顶部。无论我尝试什么,我都无法获得我想要的行为...这可能是 SwiftUI 错误,还是我遗漏了什么?

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

最佳答案

好的......我已经确定了问题......它是导致此问题的 SwiftUI 按钮上的 .shadow(radius: 6) 修饰符。这很奇怪……但嘿,至少我找到了问题所在。

关于ios - 如何将 SwiftUI View 放置在 UIKit (UIViewRepresentable) View 之上? (错误或错误?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58914946/

相关文章:

ios - 从保留图标的后退按钮中删除文本

ios - 将加速度数据调整为全局引用系

java - Objective C NSData 等效十六进制值(iOS)在 JAVA(Android)中显示负整数值?

ios - 使用按钮自定义 CAShapeLayer 动画

swift - 更改 UIAlertController 的标题字体大小

ios - 如何检索另一个 firebase 子项中的子项(数组)

ios - 根据 'if' 语句发出警报

swift - Swift 中 `Combine` 和 `didSet` 有什么区别?

swift - 如何在 macOS 的 SwiftUI 中使用菜单命令实现多窗口?

ios - 即使应用程序处于后台或锁定模式,如何执行任务直到完成