2010-10-02 11 views
5

Para mover anotaciones personalizadas en mi clase MKMapView, elimino todas las anotaciones primero y las agrego (que se colocan en ubicaciones nuevas) de nuevo cada segundo. Funcionaba perfectamente en iOS 3, pero cuando actualicé mi sistema operativo y XCode a la versión 4.0, las anotaciones parpadean en lugar de tener el movimiento suave que solían tener en la versión anterior.Suave movimiento de anotación en OS 4

¿Cómo puedo mantener este movimiento suave?

+0

En una corazonada, ¿qué sucede si vuelves a agregar la anotación sin quitarla? Si tiene suerte, MKMapView notará que está tratando de agregar lo mismo dos veces y volver a cargar las coordenadas ... –

+0

Lo intenté, pero si reutilizo las mismas anotaciones, cambio la latitud, los valores de longitud y los agrego (de nuevo) a MKMapView, los objetos no se moverán en absoluto. Parece que una vez que se agrega una anotación a MKMapView, no se actualizará. – Pooya

Respuesta

0

Esta es probablemente una mala solución y más esfuerzo que sea necesario, pero debería funcionar:

  1. Obtener una UIImage haciendo que el viejo MKMapView a un mapa de bits: Rendering UIView with its children
  2. Display que UIImage sobre la vista de mapa .
  3. Cambie sus anotaciones (el usuario no ve el parpadeo porque la imagen está cubriendo la vista del mapa)
  4. Una vez que el parpadeo finaliza, atenúa rápidamente la imagen. No es una transición perfecta, pero es mejor que nada.
+0

Esta podría ser una buena solución depende de la aplicación. Lamentablemente, en el mío, el usuario debería poder desplazarse/acercar o alejar el mapa mientras los objetos se mueven. Por lo tanto, la solución anterior puede causar problemas graves de rendimiento. – Pooya

+0

En realidad, trato de desarrollar un juego basado en la ubicación en el que el usuario pueda juntar algunas monedas, escapar de los monstruos en movimiento, ... – Pooya

Cuestiones relacionadas