CABasicAnimation с использованием CAValueFunction и с использованием анимированной траектории, но получил другой результат. Мне просто интересно - PullRequest
0 голосов
/ 19 июня 2019
CAAnimationGroup * animationGroup = [CAAnimationGroup animation];
    CABasicAnimation * translateX = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
    translateX.toValue = @(300);
    CABasicAnimation * translateY = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
    translateY.toValue = @(400);

    animationGroup.duration = 4;
    animationGroup.beginTime = CACurrentMediaTime() + 3;
    animationGroup.removedOnCompletion = NO;
    animationGroup.fillMode = kCAFillModeForwards;
    [animationGroup setAnimations:@[translateX,translateY]];
    [self.customView.layer addAnimation:animationGroup forKey:nil];
  • animationWithKeyPath с использованием CAValueFunction , существуют все виды типов анимации (такие как перевод, вращение, масштабирование и т. Д., Мы можем использовать их для удобства) , а затем с помощью animationGroup одновременная анимация
CAAnimationGroup * animationGroup = [CAAnimationGroup animation];

    CABasicAnimation * translateX = [CABasicAnimation animationWithKeyPath:@"transform"];
    translateX.valueFunction = [CAValueFunction functionWithName:kCAValueFunctionTranslateX];
    translateX.toValue = @(300);

    CABasicAnimation * translateY = [CABasicAnimation animationWithKeyPath:@"transform"];
    translateY.valueFunction = [CAValueFunction functionWithName:kCAValueFunctionTranslateY];
    translateY.toValue = @(400);

    animationGroup.duration = 4;
    animationGroup.beginTime = CACurrentMediaTime() + 3;
    animationGroup.removedOnCompletion = NO;
    animationGroup.fillMode = kCAFillModeForwards;
    [animationGroup setAnimations:@[translateX,translateY]];
    [self.customView.layer addAnimation:animationGroup forKey:nil];

Я попробовал описанные выше двумя способами , создав анимацию , которая translateX одновременно translateY , поэтому ожидаемая анимация будет composition animation, но только первый метод может работать хорошо, а второй - только завершить последнюю анимацию в группе, мне просто интересно

...