UIPanGestureRecognizer 从不调用操作方法

UIPanGestureRecognizer never call action method

我正在尝试将 UIPanGestureRecognizer 添加到我的 mapView 但我不明白为什么 从未调用操作方法 (Swift 2.1).

import UIKit
import MapKit

class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate, UIGestureRecognizerDelegate
{
    override func viewDidLoad()
    { 
        super.viewDidLoad()

        // other stuff...

        let gestureRecognizer = UIPanGestureRecognizer(target: self, action: "didDragMap:")
        gestureRecognizer.delegate = self
        self.mapView.addGestureRecognizer(gestureRecognizer)
    }

    func didDragMap(sender: UIPanGestureRecognizer)
    {
        // never enter here
    }
}

这是怎么回事?我有相同的 Objective-C 对应并且它的工作。

由于 MKMapView 已经处理了它自己的手势,您需要启用它来听取您的手势。

像这样实现 shouldRecognizeSimultaneouslyWithGestureRecognizer 和 return true:

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

Source