2014-11-19 7 views
4

Я создаю приложение с помощью быстрого доступа. В одном из моих ViewController у меня есть GMSMapView, который я создаю программно. Я хочу, чтобы пользователь имел возможность запускать действие при нажатии на карту.UITapGestureRecogniser в 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, did not work ...

Любая идея?

ответ

4

мне удалось сделать это с

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

Но если кто-то может объяснить мне, почему другое решение не работает, это было бы здорово!

2

Посмотреть на карту уже есть свой собственный жест распознаватели для панорамирования, масштабирование и т.д.

Таким образом, вы, вероятно, нужно сказать систему, что она должна заботиться о нескольких распознавателях жестов.

В рамках протокола UIGestureRecognizerDelegate:

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

Вы можете использовать по умолчанию 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; 
+0

Вы можете отредактировать пункты пули и сделать соответствующие блоки кода? Это невозможно прочитать. – Ares

 Смежные вопросы

  • Нет связанных вопросов^_^