使用 CGPathAddArcToPoint 构建路径的 CAKeyframeAnimation 不起作用

Posted

技术标签:

【中文标题】使用 CGPathAddArcToPoint 构建路径的 CAKeyframeAnimation 不起作用【英文标题】:CAKeyframeAnimation with Path build with CGPathAddArcToPoint doesn't work 【发布时间】:2012-12-04 12:09:09 【问题描述】:

我有一个 keyframeAnimation 并定义了一个路径,但动画不起作用。

你看出什么不对了吗? :S

代码如下:

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

CGMutablePathRef animationPath = CGPathCreateMutable();

CGPathMoveToPoint(animationPath, NULL, 300, 100);

CGPathAddArcToPoint(animationPath, NULL, 300, 100, 800, 500, 500);

animKF.path = animationPath;

animKF.duration = 3;

animKF.rotationMode =  kCAAnimationRotateAuto;

[imageView.layer addAnimation:animKF forKey:@"keyframe"];

非常感谢

【问题讨论】:

“不起作用”是什么意思?怎么了?什么都没有还是错了? 另外,一旦你将它分配给动画,不要忘记使用CGPathRelease(animationPath);释放animationPath。 【参考方案1】:

您可能认为CGPathMoveToPoint() 是真正“移动”要点的方法,抱歉并非如此。我猜您的意图是为“路径”属性设置动画。因此,您应该创建几个(在您的情况下为 3 个)CGMutablePathRef 对象作为keyframe。然后调用

[animKF setValues: @[path1,path2,path3]];

【讨论】:

以上是关于使用 CGPathAddArcToPoint 构建路径的 CAKeyframeAnimation 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用自动工具构建系统/在单独的“构建”目录中构建

使用 GraphQL 构建 BFF Demo

使用构建事件停止构建并显示消息

你可以使用ANT构建文件作为Phing构建文件吗?

如何检索在 VSTS 中触发构建时使用的构建参数(使用 REST API)?

无法使用 Maven 构建配置文件在 Jenkins 中构建