En mi aplicación estoy usando CABasicAnimation para la animación. Quiero cambiar la velocidad de la animación dinámicamente, así que he agregado un control deslizante para cambiar la velocidad. A continuación está mi código de animación. Pero no puedo cambiar la velocidad, cuando cambio el valor de la velocidad no pasa nada.Cómo cambiar la velocidad durante la animación CABasicAnimation
CABasicAnimation * a = [CABasicAnimation animationWithKeyPath:@"position"];
[a setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]];
CGPoint startPt = CGPointMake(self.view.bounds.size.width + displayLabel.bounds.size.width/2,
displayLabel.frame.origin.y);
CGPoint endPt = CGPointMake(displayLabel.bounds.size.width/-2, displayLabel.frame.origin.y);
[a setFromValue:[NSValue valueWithCGPoint:startPt]];
[a setToValue:[NSValue valueWithCGPoint:endPt]];
[a setAutoreverses:NO];
[a setDuration:speeds];
[a setRepeatCount:HUGE_VAL];
[displayLabel.layer addAnimation:a forKey:@"rotationAnimation"];
- (IBAction)speedSlider:(id)sender {
speeds = slider.value;
}
Posible duplicado de [Cambiar duración (velocidad) en una animación en ejecución] (https://stackoverflow.com/questions/21589483/change-duration-speed-on-a-running-animation) – Fattie
** Solución completa para 2017 ** ...https://stackoverflow.com/a/45787919/294884, phew – Fattie