CAKeyframeAnimation Manual Progress

У меня есть UIView, у которого задний слой имеет CAKeyframeAnimation с простой прямой линией пути, установленной в качестве его `path`.

Можно мне анимациюзамороженный»так сказать, а вручную изменить свой прогресс?

Например: если длина пути составляет 100 точек, при установке прогресса (смещения?) На 0,45 представление должно двигаться на 45 пунктов вниз по пути.

Я помню, как видел статью, в которой было что-то похожее (перемещение представления по пути на основе значения из ползунка) через интерфейсы CAMediaTiming, но у меня нетЯ не смог найти его даже после нескольких часов поиска. Если я'Я подошел к этому совершенно неправильно, пожалуйста, дайте мне знать. Благодарю.

Вот's пример кода, если выше неДостаточно ясно.

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

Ответы на вопрос(2)

Ваш ответ на вопрос