gpt4 book ai didi

ios - 覆盖 View ,但将输入向下传播到最低 z-index

转载 作者:行者123 更新时间:2023-12-01 22:09:37 26 4
gpt4 key购买 nike

使用 SwiftUI,我想创建一个 View ,用户可以在其中选择 map 上的区域。为此,我想使用 MapKit 并在上方绘制一个略微不透明的红色圆圈,表示当前区域。根据缩放级别,该区域会变大或变小。

我已经有以下代码(MapView 取自这份备忘单 https://github.com/SimpleBoilerplates/SwiftUI-Cheat-Sheet#navigation):

import MapKit

struct MapView: UIViewRepresentable {
func makeUIView(context: Context) -> MKMapView {
MKMapView(frame: .zero)
}

func updateUIView(_ view: MKMapView, context: Context) {
let coordinate = CLLocationCoordinate2D(
latitude: 34.011286,
longitude: -116.166868
)
let span = MKCoordinateSpan(latitudeDelta: 2.0, longitudeDelta: 2.0)
let region = MKCoordinateRegion(center: coordinate, span: span)
view.setRegion(region, animated: true)
}
}

struct LocationSelectionView: View {
var body: some View {
MapView()
.overlay(
Circle()
.fill(Color.init(red: 1.0, green: 0.0, blue: 0.0, opacity: 0.3))
.frame(width: 300, height: 300)
)
}
}

结果如下:
enter image description here

现在, 问题 也就是说,如果我在红色圆圈内,则在 map 上滚动不再起作用,因为输入被定向到圆圈但没有向下传播到实际 map 。仍然可以将 map 滚动到圆圈之外。

如何将用户手势传递给 MapView,使圆圈只是一个没有任何功能的实际视觉覆盖?

最佳答案

- 禁用水龙头:

设置 .allowsHitTesting(false)Circle
- 禁用平移:

在 SwiftUI 中是不可能的(还)。

关于ios - 覆盖 View ,但将输入向下传播到最低 z-index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58174984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com