2011-07-22 14 views
6

Me gusta implementar algo. Me gusta esto. Tengo dos anotaciones con textos destacados, pero MKMapView solo permite seleccionar una al mismo tiempo.¿Cómo mostrar varias llamadas desde MKAnnotationView?

[mapView selectAnnotation:self.firstAnnotation animated:FALSE]; 
[mapView selectAnnotation:self.secondAnnotation animated:FALSE]; 

Cuando selecciono otra anotación, la primera se deseleccionó automáticamente.

Pero en la imagen a continuación, se implementó con éxito. Entonces, ¿cómo puede hacerse esto? http://oi52.tinypic.com/14t3t09.jpg

Respuesta

5

Véase también "llamadas de anotación múltiples que muestran en MKMapView": Multiple annotation callouts displaying in MKMapView

Parece que el marco no es compatible con múltiples selecciones, por lo que tendrá que implementar llamadas personalizadas para este comportamiento. La respuesta a la pregunta vinculada sugiere hacer que su llamada sea parte de su vista de anotación para que pueda administrar la selección usted mismo. En lo personal me gusta la aplicación de la llamada como una anotación separada - Tengo un proyecto de ejemplo con llamadas personalizados aquí:

https://github.com/jacobjennings/JJMapCallout

que era mi solución a:

MKAnnotationView - Lock custom annotation view to pin on location updates

En este proyecto, reenviar los métodos de delegado MKMapView

- (void)mapView:(MKMapView *)aMapView didSelectAnnotationView:(MKAnnotationView *)aView 
- (void)mapView:(MKMapView *)aMapView didDeselectAnnotationView:(MKAnnotationView *)aView 

a la respectiva anotación. Esto me permite implementar comportamientos de leyenda esperados. Sin embargo, puede ignorar los mensajes didDeselectAnnotationView para dejar los textos destacados visibles.

Para saber si el usuario toca en el mapa para borrar las anotaciones (no tocó un alfiler), verifique el valor de mapView.selectedAnnotations en su método didDeselectAnnotationView, y si está vacío, sabrá borrar tus llamadas.

+0

¡excelente! ¡¡gracias!! – baladurasa

+1

lea la otra solución a la que se conectó y notó que cambió el enlace de megaupload allí, ¡también debe cambiar este enlace! Buen trabajo... – whyoz

Cuestiones relacionadas