5

我有一个层会在 UIBezierPath 上从 A 点移动到 B 点。我发现了很多示例,它们是指 CAAnimation 和 UIBezierPath。但我只需要将我的图层从指定点移动到贝塞尔路径上的另一个点。

在此处输入图像描述

任何建议,将不胜感激。

谢谢

4

3 回答 3

3

希望这会有所帮助。

UIBezierPath *trackPath = [UIBezierPath bezierPath];
.
.
.
CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"position"];
anim.path = trackPath.CGPath;
anim.repeatCount = 1;
anim.duration = 2.0;
[layerToAnimate addAnimation:anim forKey:@"pathGuide"];
于 2015-05-20T12:28:21.883 回答
2

如果您的贝塞尔路径是一个圆形甚至半个圆形,您可以跳过该路径,而是将点添加到更大的方形图层。将该点设置为距该较大方形图层的中心的固定距离。然后,您可以围绕中心旋转 z 轴上较大的图层,无论您需要它移动多少度数。似乎它会简化一些事情,但我不确定你还需要它做什么。

于 2013-01-15T05:53:26.947 回答
1

我一直想做这样的事情并找到本教程,它展示了如何遵循特定的路径。它使用汽车(CALayer)和 UIBezierpath 作为赛道,并按以下顺序解决:

定义汽车应遵循的路径(在本例中为您的 BezierPath) 绘制定义轨道的黑线;(N/A) 绘制轨道的白色虚线中心线;(不适用)创建定义汽车的层;(您的图层)沿路径为汽车设置动画。(你问什么!)

您可以在此处查看参考帖子:http: //nachbaur.com/2011/01/07/core-animation-part-4/

你也可以在这里下载源代码: http ://cdn5.nachbaur.com/wp-content/uploads/2011/01/CALayerAnimTest.zip?25881d

希望这可以帮助!

问候,

乔治。

于 2012-11-14T22:54:19.173 回答