【问题标题】:UITapGestureRecogniser in GMSMapViewGMSMapView中的UITapGestureRecogniser
【发布时间】:2014-11-19 12:36:12
【问题描述】:

我正在使用 swift 创建一个应用程序。在我的一个 ViewController 中,我有一个以编程方式创建的 GMSMapView。我希望用户能够在点击地图时触发操作。

我做了什么:

import UIKit

class MapViewController: UIViewController, GMSMapViewDelegate {

let mapView = GMSMapView()

override func viewDidLoad() {
        super.viewDidLoad()

        mapView.delegate = self
        mapView.settings.scrollGestures = false
        mapView.frame = CGRectMake(0, 65, 375, 555)
        view.addSubview(mapView)


        var tap = UITapGestureRecognizer(target: self, action: "tap:")
        mapView.addGestureRecognizer(tap)
}

func tap(recogniser:UITapGestureRecognizer)->Void{
        println("it works")
    }

}

我试图覆盖 touchesBegan,但没有奏效。我试图插入 mapView.userInteractionEnabled = true,没用...

有什么想法吗?

【问题讨论】:

  • 我在你的代码中添加了一行代码 mapView.isUserInteractionEnabled = true 但还是不行。

标签: ios swift uitapgesturerecognizer gmsmapview


【解决方案1】:

我设法做到了

func mapView(mapView: GMSMapView!, didTapAtCoordinate coordinate: CLLocationCoordinate2D) {
        println("It works")
    }

但如果有人可以向我解释为什么其他解决方案不起作用,那就太好了!

【讨论】:

    【解决方案2】:

    您可以使用默认的 MapVIew LongPress 事件

      /**
    
     * Called after a long-press gesture at a particular coordinate.
     *
     * @param mapView The map view that was pressed.
     * @param coordinate The location that was pressed.
     */
         - (void)mapView:(GMSMapView *)mapView
        didLongPressAtCoordinate:(CLLocationCoordinate2D)coordinate;
    

    【讨论】:

    • 你能编辑出要点并制作正确的代码块吗?这真的无法阅读。
    【解决方案3】:

    地图视图已经有自己的手势识别器,用于平移、缩放等。

    所以你可能需要告诉系统它应该注意多个手势识别器。

    作为UIGestureRecognizerDelegate 协议的一部分:

    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
        return true
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多