2016-03-22 7 views
2

Я пытаюсь добавить UIPanGestureRecognizer к моему mapView, но я не знаю почему метод действия никогда не вызывается (Swift 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 и возвращает истину, как так:

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

Source

+0

спасибо человеку !! : D –