Nella mia applicazione sto usando CABasicAnimation per l'animazione. Voglio cambiare la velocità dell'animazione in modo dinamico così ho aggiunto un cursore per cambiare la velocità. Di seguito è riportato il mio codice di animazione. Ma non sono in grado di cambiare la velocità, quando cambio il valore della velocità non succede nulla.Come modificare la velocità durante l'animazione 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;
}
Possibile duplicato di [Modifica durata (velocità) su un'animazione in esecuzione] (https://stackoverflow.com/questions/21589483/change-duration-speed-on-a-running-animation) – Fattie
** Soluzione completa per il 2017 ** ...https://stackoverflow.com/a/45787919/294884, phew – Fattie