OStack程序员社区-中国程序员成长平台

标题: ios - CAAnimationGroup 与 CAKeyframeAnimation 和 CABasicAnimation [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 13:14
标题: ios - CAAnimationGroup 与 CAKeyframeAnimation 和 CABasicAnimation

我正在尝试沿曲线路径为 View 设置动画并同时将其缩小:

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"];

问题在于, View 不是在移动时逐渐缩小,而是立即缩小,然后沿着路径移动。当它明显移动时,我需要按比例缩小。



Best Answer-推荐答案


这样做解决了:

resizeAnimation.fromValue = [NSNumber numberWithDouble:1.0];

我不明白为什么我必须这样做。似乎应该从当前转换的默认 fromValue 开始。

关于ios - CAAnimationGroup 与 CAKeyframeAnimation 和 CABasicAnimation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17982509/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4