向 GMSMapView 添加手势识别器以获得 .begin/.ended/.change 手势

Adding a gesture recognizer to GMSMapView in order to get .begin/.ended/.change gestures

在 GMSMapView 对象上获取平移手势不会 return 任何事情。我不知道这是否行得通。然而,在 didChange 函数上的覆盖委托不会做太多,因为我想像在 UIPanGestureRecognizer 上一样获得 .began/.changed/.ended 状态。

在 GMSMapView 对象上添加手势识别器,但它不会 return 任何手势状态。

//初始化

let panGesture = UITapGestureRecognizer(target: self, action: #selector(self.handlePan(recognizer:)))

mapView?.addGestureRecognizer(panGesture)
mapView?.isUserInteractionEnabled = true

//函数

@objc func handlePan(recognizer: UIPanGestureRecognizer){
    var animator = UIViewPropertyAnimator()

    switch recognizer.state {
    case .began:
        print("began")
    case .changed:
        print("changed")
    case .ended:
        print("ended")
    default:
        print("none")
    }
}

您应该将其设置为 false mapView.settings.consumesGesturesInView = false

当此项设置为true(默认情况下)时,所有手势均由 GMSMapView 处理。

您可以设置为false自行处理。因为 pan gesture 是默认处理的。

查看文档:Google Maps Documentation

请问您要处理所有手势的目的是什么?