更快地识别 MKMapView 上的单击 (Swift)

Faster recognition of single tap on MKMapView (Swift)

在我的 iOS 应用程序中,我有一个 MKMapView 的实例,单击一下,我想在地图上添加一个标记。我添加了一个 UITapGestureRecognizer 并立即注意到即使用户双击缩放(或与地图的其他交互)它也会触发。

我已经实现了这样的 UIGestureRecognizerDelegate 方法并且这个方法有效,但是使交互非常缓慢,因为它显然在等待其他手势识别器失败。

    func gestureRecognizer(
        _ gestureRecognizer: UIGestureRecognizer,
        shouldRequireFailureOf otherGestureRecognizer: UIGestureRecognizer
    ) -> Bool {
        guard gestureRecognizer == self.mapGestureRecognizer else {
            return false
        }

        return !(otherGestureRecognizer is UITapGestureRecognizer) && otherGestureRecognizer.state == .possible
    }

有没有什么方法可以在不破坏地图视图上的原生手势的情况下快速执行点击操作?

不确定是否有直接的解决方案,因为 mapView 在等待检查之前无法知道您的点击是否是另一个手势的一部分。我通常的解决方法是使用长按在地图上添加标记,因为这是一个离散事件