Tengo una anotación personalizada que establece su imagen en función del tipo de la anotación mediante el método delegar viewForAnnotation. Solo estoy usando 1 anotación que representa un automóvil en movimiento y quiero cambiar la imagen para cuando se detecte que el automóvil se está moviendo y parado. ¿Cómo podría hacer esto además de eliminar mi anotación y volver a agregarla, lo que causa un parpadeo?cambiar la imagen de anotación después de su creación
Respuesta
Siempre que se detecta que el estado del coche ha cambiado, recupere la opinión actual de la anotación utilizando el MKMapView
ejemplo método viewForAnnotation:
. Esto no es lo mismo que el mapView:viewForAnnotation:
delegado método.
Después de obtener la vista actual para la anotación, puede modificar sus propiedades, incluyendo image
.
También asegúrese de que el método delegado mapView:viewForAnnotation:
tenga la misma condición exacta para establecer image
en función del estado de la anotación del automóvil. Es posible que desee colocar la lógica en un método común llamado desde ambos lugares (donde el estado cambia y el método delegado) para que el código no se duplique.
Por ejemplo, cuando los cambios de estado, es posible que tenga:
//carAnnotation is your id<MKAnnotation> object
MKAnnotationView *av = [mapView viewForAnnotation:carAnnotation];
if (carAnnotation.isMoving)
av.image = [UIImage imageNamed:@"moving.png"];
else
av.image = [UIImage imageNamed:@"stopped.png"];
El if
declaración (o lo que sea la lógica tiene que establecer image
) es la parte que debe ser también en el método viewForAnnotation
delegado.
- 1. ¿Cómo agrega foursquare una anotación de imagen personalizada en su mapa de Open Graph?
- 2. Movimiento suave de la imagen de anotación en Mapview
- 3. Cómo cambiar la fuente de datos en una cuadrícula de datos YUI después de la creación
- 4. Obtener tamaño de imagen real, después de cambiar el tamaño
- 5. cambiar la imagen onConfigurationChanged
- 6. CodeIgniter Cargar imagen y luego cambiar su tamaño
- 7. iOS MapKit ¿Cambiar mapview maptype hace que la imagen de anotación cambie a pin?
- 8. añadir eventhandler al planificador de evento jQuery UI después de su creación
- 9. Service.onDestroy() se llama directamente después de la creación, de todos modos el servicio hace su trabajo
- 10. Cambiar el contenido de un cuadro de diálogo de Android después de la creación
- 11. ¿Cambiar las preferencias de configuración del widget de Android después de la creación?
- 12. Crear repositorio de git después de la creación del proyecto
- 13. Cambiar el tamaño de la imagen de Android después de llamar a la cámara intento
- 14. Evento de carga de imagen después de cargar la imagen
- 15. ckfinder cambiar el tamaño de la imagen
- 16. ¿Por qué mi vista se mueve cuando configuro su marco después de cambiar su anclaje?
- 17. jquery: fundido en la imagen después de la imagen
- 18. codestyle; poner javadoc antes o después de la anotación?
- 19. css - cómo cambiar la fuente de la imagen por su id?
- 20. Cambiar la opacidad de la imagen
- 21. UIButton Imagen de fondo Cambiar programáticamente
- 22. javascript ejecutando la función después de cargar la imagen completa
- 23. Restaurar ActionMode después de cambiar la orientación
- 24. El contenido de la pestaña permanece visible después de cambiar la pestaña después de cambiar la orientación
- 25. Cambiar la imagen de fondo UINavigationBar
- 26. Cómo cambiar la imagen de una ruleta
- 27. jQuery de palanca para cambiar la imagen
- 28. Detener la rotación de la imagen después de 360 grados
- 29. cambiar el tamaño de la imagen al guardar
- 30. Java buscan un método con anotación específica y su elemento de anotación
No tengo idea de por qué esto no ha tenido un voto previo ... gran respuesta – Sean