Manueller Fortschritt von CAKeyframeAnimation

Ich habe eine UIView, deren Hintergrundebene eine CAKeyframeAnimation mit einem einfachen geraden Pfad als `Pfad` hat.
Kann ich die Animation sozusagen "eingefroren" haben und ihren Fortschritt manuell ändern?
Beispiel: Wenn der Pfad 100 Punkte lang ist, sollte die Ansicht um 45 Punkte nach unten verschoben werden, wenn der Fortschritt (Versatz?) Auf 0,45 eingestellt wird.

Ich erinnere mich, dass ich einen Artikel über CAMediaTiming-Benutzeroberflächen gesehen habe, der etwas Ähnliches getan hat (eine Ansicht auf einem Pfad basierend auf dem Wert eines Schiebereglers verschoben hat), aber ich konnte ihn selbst nach einigen Stunden der Suche nicht finden. Wenn ich das auf eine völlig falsche Art und Weise betrete, lass es mich bitte wissen. Vielen Dank.

Ist hier etwas Beispielcode, wenn das oben genannte nicht genug klar ist.

- (void)setupAnimation
{

    CAKeyFrameAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];

    UIBezierPath *path = [UIBezierPath bezierPath];
    [path moveToPoint:_label.layer.position];
    [path addLineToPoint:(CGPoint){200, 200}];

    animation.path = path.CGPath;

    animation.duration = 1;
    animation.autoreverses = NO;
    animation.removedOnCompletion = NO;
    animation.speed = 0;

    // _label is just a UILabel in a storyboard
    [_label.layer addAnimation:animation forKey:@"LabelPathAnimation"]; 
}

- (void)sliderDidSlide:(UISlider *)slider
{
    // move _label along _animation.path for a distance that corresponds to slider.value
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage