Pregunta

Estoy fijando un UISlider sencilla para animar el progreso de que:

[UIView animateWithDuration:songLength
         delay:0.0
       options:UIViewAnimationOptionRepeat|
         UIViewAnimationOptionAllowUserInteraction|
         UIViewAnimationOptionBeginFromCurrentState
       animations:^{
        [UIView setAnimationDuration:10.0];
        [myUISlider setValue:10.0];
       } completion:nil
   ];

  [UIView commitAnimations];

cuando el usuario presiona un botón que quiero para detener la animación en su lugar.

Yo entiendo que necesito para consultar la capa de presentación de averiguar el valor, sin embargo, la capa de presentación es de tipo CALayer y no UISlider. por lo tanto, tiene propiedades de capa, como el mismo de la posición X / Y en la pantalla, pero no el valor de la corredera en sí.

tiene sentido que por el diseño de la capa de presentación puede acceder a todos los datos actuales animados de una capa, pero no estoy seguro de cómo funciona eso en el código.

alguna idea?

¿Fue útil?

Solución

Me di cuenta de una manera de resolver este asunto, en caso de que se trata de la misma cuestión. por diseño no hay forma aparente para consultar un pulgar animada de un UISlider. consulta la animación funciona bien para una capa, por lo que una forma es crear su propio fondo y animado una capa que es el dedo pulgar.

la forma en que he trabajado alrededor de esto es el uso de la clase NSTimer. una vez quiero la barra de progreso para iniciar la animación me puse un NSTimer de 0,1 segundos de intervalo y llamar a una función para actualizar la ubicación del pulgar. la animación antes / después de que el pulgar (a medida que avanza la parte izquierda es de color azul y lo que quedaba todavía es blanco) es atendido de forma automática.

aquí está el código:

updateTimer = [NSTimer scheduledTimerWithTimeInterval:.01 target:self selector:@selector(updateCurrentTime) userInfo:p repeats:YES];

así que cada 0,01 de un segundo este método se llama y se vuelve a dibujar el pulgar, creando así la animación. hay necesidad de un bloque de animación.

esto funciona bien y estoy feliz con los resultados. Estoy preocupado con el rendimiento y medirá qué tan intensivo en recursos esta implementación es. Es tal vez una buena idea para ir con la primera opción que he mencionado anteriormente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top