2

Я пытаюсь оживить вид по криволинейной траектории и масштабировать его вниз в то же самое время:CAAnimationGroup с CAKeyframeAnimation и CABasicAnimation

CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; 
    pathAnimation.calculationMode = kCAAnimationPaced; 
    pathAnimation.fillMode = kCAFillModeForwards; 
    pathAnimation.removedOnCompletion = NO; 
    //Setting Endpoint of the animation 
    CGPoint endPoint = endCenter; 
    CGMutablePathRef curvedPath = CGPathCreateMutable(); 
    CGPathMoveToPoint(curvedPath, NULL, viewOrigin.x, viewOrigin.y); 
    CGPathAddCurveToPoint(curvedPath, NULL, viewOrigin.x+200, viewOrigin.y-150, endPoint.x+100, endPoint.y+10, endPoint.x, endPoint.y); 
    pathAnimation.path = curvedPath; 
    CGPathRelease(curvedPath); 

    // Set up scaling 
    CABasicAnimation *resizeAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; 
    resizeAnimation.toValue = [NSNumber numberWithDouble:0.4]; 
    resizeAnimation.fillMode = kCAFillModeForwards; 
    resizeAnimation.removedOnCompletion = NO; 

    CAAnimationGroup *group = [CAAnimationGroup animation]; 
    group.fillMode = kCAFillModeForwards; 
    group.removedOnCompletion = YES; 
[group setAnimations:[NSArray arrayWithObjects: pathAnimation, resizeAnimation, nil]]; 
    group.duration = 3.7f; 
    group.delegate = self; 
    [group setValue:self.myView forKey:@"imageViewBeingAnimated"]; 

self.myView.center = endCenter; 
self.myView.transform = self.myViewTransform; 
[self.myView.layer addAnimation:group forKey:@"savingAnimation"]; 

Проблема заключается в том, что вместо точки зрения сворачивает постепенно, как она двигается , он сразу же уменьшается, затем движется по пути. Мне нужно уменьшаться, поскольку оно движется явно.

ответ

1

решаемые сделать это:

resizeAnimation.fromValue = [NSNumber numberWithDouble:1.0]; 

Я не понимаю, почему я должен это сделать. Похоже, он должен начинаться с значения по умолчанию из значения текущего преобразования.

Смежные вопросы