2016-03-22 57 views
2

我嘗試添加UIPanGestureRecognizermapView但我不爲什麼操作方法不會被調用(雨燕2.1)。UIPanGestureRecognizer永遠不會調用操作方法

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對應,它的工作。

+0

嘗試打印'mapView.gestureRecognizers' - 也許還有另外一個鍋識別已經連接?您可以嘗試在地圖視圖上方放置透明視圖,並將泛識別器附加到該視圖上。 – nielsbot

回答

2

由於MKMapView已經處理了它自己的手勢,因此您需要啓用它才能聽取您的手勢。

實施shouldRecognizeSimultaneouslyWithGestureRecognizer和像這樣返回true:

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

Source

+0

謝謝你! :d –

相關問題