2011-12-01 14 views
10

Necesito rastrear con precisión el centerCoordinate de un MKMapView mientras el usuario acerca/aleja el mapa, es decir, entre los eventos regionWillChangeAnimated: y regionDidChangeAnimated:.Seguimiento del centroCoordinación de MKMapView

He probado los siguientes enfoques al intentar bloquear un MKAnnotation en el centro del mapa. Por desgracia, ninguno de ellos funciona lo suficientemente bien:

  • Usando UIPanGestureRecognizer (como se describe here): esto funciona bastante bien, mientras que la pantalla es tocada, pero no actualiza mientras que el mapa está animado después de que el movimiento táctil que se ha completado . Además, las actualizaciones van por detrás de la actual centerCoordinate.

  • Usando UIScrollViewDelegate I subclassed MKMapView para recibir el evento scrollViewDidScroll:. Esto funcionó, pero el evento no se desencadena en cada incremento de desplazamiento, lo que lleva a actualizaciones desiguales.

  • Usando MVA Notificaciones: siguientes this patrón, trataba de observar de centerCoordinate la MapView. Funciona para el userLocation, pero las notificaciones no parecen enviarse para centerCoordinate.

¿Alguna idea sobre cómo rastrear centerCoordinate con eficacia y precisión?

KVO parecía la mejor opción. ¿Hay algún truco para hacerlo funcionar con la propiedad MKMapView de centerCoordinate?

+1

¿Alguna vez resolvió esto mediante las notificaciones de KVO? – Jann

Respuesta

0

Si entiendo correctamente, está tratando de tener algo (anotación en su caso) que esté siempre en el centro de la pantalla, ¿verdad? No estoy seguro de para qué se utiliza esta anotación, pero ¿es aceptable colocar otra vista transparente en la parte superior del mapa que actúa como anotación (también puede hacer que esta vista tenga el mismo tamaño que el mapa y tener una subvista que actúe como anotación) . Tendrá el mismo efecto en el usuario. Luego de que la región cambió, puedes obtener el coordinador central y hacer el procesamiento que necesites. No creo que deba realizar ningún procesamiento mientras el usuario navega o pellizca el mapa ... Sin mencionar que las anotaciones deben tener coordenadas fijas.