【问题标题】:Adding a gesture recognizer to GMSMapView in order to get .begin/.ended/.change gestures向 GMSMapView 添加手势识别器以获取 .begin/.ended/.change 手势
【发布时间】:2019-08-05 08:58:20
【问题描述】:

在 GMSMapView 对象上获取平移手势不会返回任何内容。我不知道这是否会奏效。但是,在 didChange 函数上的覆盖委托不会做太多事情,因为我想像在 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")
    }
}

【问题讨论】:

    标签: ios swift google-maps uigesturerecognizer uipangesturerecognizer


    【解决方案1】:

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

    当它设置为true(默认)时,所有手势都由 GMSMapView 处理。

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

    查看文档:Google Maps Documentation

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

    【讨论】:

    • 对不起,我已经尝试过了。并且仍然没有触发平移手势。
    • 目的是处理平移手势,以便我在标记上添加一些动画。
    • 我已经解决了,我正在初始化一个 UITapGestureRecognizer 而不是 UIPanGestureRecognizer。大声笑
    • 很高兴能为您提供帮助
    猜你喜欢
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多