在 GMSMapView 对象上获取平移手势不会返回任何内容。我不知道这是否行得通。然而,在 didChange 函数上的覆盖委托(delegate)不会做太多,因为我想像在 UIPanGestureRecognizer 上一样获得 .began/.changed/.ended 状态。
在 GMSMapView 对象上添加手势识别器,但它不会返回任何手势状态。
//初始化
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
请问您要处理所有手势的目的是什么?
关于ios - 向 GMSMapView 添加手势识别器以获得 .begin/.ended/.change 手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57355214/