iPhone: la Détection du Robinet dans MKMapView
Comment puis-je détecter un simple clic sur une instance de MKMapView
? Dois-je sous-classe MKMapView
, puis remplacer le touchesEnded
méthode?
Merci,
-Chris
Vous devez vous connecter pour publier un commentaire.
Espère que cela aidera à : Comment intercepter les touches événements sur un MKMapView ou UIWebView objets?
Si vous êtes simplement à la recherche pour être averti de robinet gestes sans affecter les autres toucher le comportement de la carte, vous aurez envie d'utiliser un
UITapGestureRecognizer
. C'est super simple, il suffit de mettre dans un peu de code comme ceci.Qui va appeler la
didTapMap
chaque fois quetheMKMapView
reçoit un robinet geste et tous les pincer, et en faisant glisser les gestes continuera de fonctionner comme ils le faisaient avant.@selector(didTapMap:)
Fonctionne Parfaitement sur iOS 8
Ou en fonction de ce que vous essayez de faire, ajouter un
MKAnnotation
(punaise, avec une légende), si vous avez quelque chose à taper, puis votre carte délégué recevra un événement par exemple.mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
Vous ne pouvez pas en ce moment d'intercepter les touches sur l'affichage de la carte, vous pouvez essayer de superposition d'une vue opaque sur place pour voir si il reprend touche...
Juste ajouter un peu d'extrait de code que l'illustration de @tt-kilew réponse. Dans mon cas, je tiens à signaler à l'utilisateur de lui-même sur la carte, mais vous ne voulez pas interrompre son drag toucher.
Rien que j'ai jamais travaillé, mais je suis venu avec cette unperfect solution :
Dans le viewDidLoad
Dans délégué :