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

标签 ios swift google-maps uigesturerecognizer uipangesturerecognizer

在 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/

相关文章:

iphone - iOS:如何从 JSON 查询构建表?

ios - 返回 Storyboard当前 View Controller 标识符

ios - 无法在 Collection View 中播放 mp4 视频

api - 应用程序运行时 Flutter Google Map API 问题

css - Google Map API - 在顶部 float div

php - 是否可以禁用 iPhone 的自动超链接?

ios - 不知道为什么当我点击单元格表时弹出 "label"

ios - 在 Swift 中检查字符串是否为 3 个字符和 3 个数字

swift - 如何在基于设备运动的 ARkit 场景 View 中平滑移动节点?

ios - 无法使用iOS Swift在Google map 上加载自定义图 block