Ios 如何在SwiftUI中向MapView添加手势
我试图在ContentView.swift中将手势(点击、滑动等)添加到Mapkit地图视图中,但没有效果。我从谷歌地图开始,然后尝试Mapkit。我知道有两种方法可以向视图中添加手势Ios 如何在SwiftUI中向MapView添加手势,ios,swiftui,gesture,Ios,Swiftui,Gesture,我试图在ContentView.swift中将手势(点击、滑动等)添加到Mapkit地图视图中,但没有效果。我从谷歌地图开始,然后尝试Mapkit。我知道有两种方法可以向视图中添加手势 向mapView添加手势,如下所示: 在MapView视图中添加手势,如下所示: 这两种方法似乎都不管用。我更喜欢的方式是#1,但我尝试了另一种方式,如#2。你知道我做错了什么吗?我正在使用Xcode 11.4(11E146)。谢谢 我认为答案是你不能在地图视图中添加手势。我可以在地图的顶部添加一个覆盖图,如果点
这两种方法似乎都不管用。我更喜欢的方式是#1,但我尝试了另一种方式,如#2。你知道我做错了什么吗?我正在使用Xcode 11.4(11E146)。谢谢 我认为答案是你不能在地图视图中添加手势。我可以在地图的顶部添加一个覆盖图,如果点击覆盖图区域,手势也会起作用。我发现这很有效!
import SwiftUI
struct ContentView: View {
var body: some View {
MapView()
.onTapGesture(count: 2) {
print("Double tapped!")
}
.edgesIgnoringSafeArea(.all)
}
struct MapView: UIViewRepresentable {
func makeUIView(context: Context) -> MKMapView {
let mapView = MKMapView()
mapView.delegate = context.coordinator
let tap = UITapGestureRecognizer(target: context.coordinator, action: #selector(Coordinator.doubleTapped))
tap.numberOfTapsRequired = 2
mapView.addGestureRecognizer(tap)
return mapView
}
func updateUIView(_ view: MKMapView, context: Context) {
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
class Coordinator: NSObject, MKMapViewDelegate {
var parent: MapView
init(_ parent: MapView) {
self.parent = parent
}
@objc func doubleTapped() {
print("Double Tapped...")
}
}
}