|
Bueno, creo que he escrito una pregunta un tanto liosa, os explico Quiero realizar la animación de la aguja de un manómetro (la aguja de un cuentakilómetros es la misma idea). Tengo una imagen que representa a la circunferencia (donde estarían pintadas los números de la velocidad) y encima de esta tengo la imagen de una aguja. La aguja al pintarse por primera vez lo hace en la posición inicial (lo que sería 0 Km/h) y cada x tiempo se debe refrescar con un valor que he obtenido y desplazarse a la posición adecuada. Por ahora lo que he conseguido es que parta del inicio (0Km/h) se desplace un ángulo (p.ej. 180º) y se quede fijo en esa posición. Hasta aquí todo bien, la aguja al recibir un nuevo valor debería rotar desde la nueva posición que ha obtenido (180º) hasta la nueva (p.ej. 30º a la izquierda o 150º desde la posición inicial según se mire), pero el comportamiento que tiene realmente es que la imagen de la aguja se repinta otra vez en la posición inicial (la que se define en Interface Builder) e inicia la rotación desde 0º hasta la posición indicada. ¿Cómo puedo hacer que se desplace desde la última posición a la que rota? Os dejo el método que estoy usando (basado en este ejemplo y en este otro) para realizar la animación:
A la llamada le paso como layer el layer de la ImageView de la aguja. Muchas gracias a todos. |
|
El error de que no se parase era un fallo descomunal mío, le estaba pasando como angulo previo siempre 0º de manera que empezaba siempre en el inicio ¬¬ Pero una vez arreglado este tema, la aguja ha empezado a dar vueltas como una loca (eso sí, partiendo siempre de la última posición), así que lo he arreglado cambiando la linea
por esto
Aunque ahora el argumento "angulo" debería pasar a llamarse "incrementoAngulo" porque es eso lo que se le pasa, el ángulo que queremos que se desplace la aguja. |
|
Intenta agregando
¿Dónde debería ponerlo? Lo he puesto al final del método pero no ha cambiado de comportamiento, llega al final del recorrido, se queda en esa posición, pero cuando tiene que volver a girar empieza desde la primera posición de todas, desde cero.
(03 Jun '11, 14:06)
torhector2
|
|
¿Existe algún protocolo que pueda implementar que se ejecute cuando la animación termine? Creo que sería ahí cuando debería aplicar lo que comenta Iván. Ahí o quizás antes de ejecutar la animación. |