CGPath 动画

3

我需要一些样例代码,可以通过动画方式绘制一个弧形路径,使其成为完整圆形。

任何意见都将不胜感激。

谢谢, Sat


你说的“画一个完整的圆作为动画”,是什么意思?你想如何制作圆的动画呢?你是想先画一个小角度,就像饼图的一小部分,然后逐渐地让这个角度变大,直到它成为完整的圆吗? - Duncan C
1个回答

10

更新: 意识到了这个问题有更好的解决方案。只需创建一个圆形路径并将 CAShapeLayer 的 strokeEnd 属性从 0.0f 动画到 1.0f 即可。可以查看 Ole 在这个答案中的解释:Drawing a path with CAKeyFrameAnimation on iPhone

原始回答:

您可以使用 CAKeyframeAnimation 并创建一个 Core Graphics 路径。此代码以抛物线形式动画图层,但您可以修改它来绘制一个圆形。

- (CAAnimation*)pathAnimation;
{

    CGMutablePathRef path = CGPathCreateMutable();
    CGPathMoveToPoint(path,NULL,50.0,120.0);

    CGPathAddCurveToPoint(path,NULL,50.0,275.0,
                          150.0,275.0,
                          150.0,120.0);
    CGPathAddCurveToPoint(path,NULL,150.0,275.0,
                          250.0,275.0,
                          250.0,120.0);    
    CGPathAddCurveToPoint(path,NULL,250.0,275.0,
                          350.0,275.0,
                          350.0,120.0);    
    CGPathAddCurveToPoint(path,NULL,350.0,275.0,
                          450.0,275.0,
                          450.0,120.0);

    CAKeyframeAnimation *
        animation = [CAKeyframeAnimation 
                     animationWithKeyPath:@"position"];

    [animation setPath:path];
    [animation setDuration:3.0];

    [animation setAutoreverses:YES];

    CFRelease(path);

    return animation;

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接