Progresso Manual do CAKeyframeAnimation

Eu tenho um UIView cuja camada de apoio tem um CAKeyframeAnimation com um simples caminho de linha reta definido como seu `caminho`.
Posso ter a animação "congelada", por assim dizer, e alterar manualmente seu progresso?
Por exemplo: Se o caminho tiver 100 pontos de comprimento, definir o progresso (deslocamento?) Como 0,45 deve fazer com que a vista se mova 45 pontos pelo caminho.

Lembro de ter visto um artigo que fazia algo semelhante (movendo uma visão ao longo de um caminho baseado no valor de um controle deslizante) por meio das interfaces do CAMediaTiming, mas não consegui encontrá-lo, mesmo depois de algumas horas de pesquisa. Se eu estou me aproximando disso de uma maneira completamente errada, por favor me avise. Obrigado.

Aqui está um exemplo de código, se o acima não for claro o suficiente.

- (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
}

questionAnswers(2)

yourAnswerToTheQuestion