我有一个层将在UIBezierPath上从A点移动到B点。 我发现很多样本都是指CAAnimation和UIBezierPath。 但是我需要在bezier路径上将我的图层从指定点移动到另一个点。
任何建议将不胜感激。
谢谢
答案 0 :(得分: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"];
答案 1 :(得分:2)
如果您的bezier路径是圆形或半圆形,则可以跳过路径,而是将该点添加到更大的方形层。将该点设置为距该较大方形层的中心的固定距离。然后你可以围绕中心旋转z轴上的较大层,无论你需要它移动多少度。似乎它会简化一些事情,虽然我不确定你还需要它做什么。
答案 2 :(得分:1)
我一直在寻找这样的事情和本教程,它展示了如何遵循特定的路径。它适用于汽车(CALayer)和UIBezierpath作为赛道,并按此顺序解决:
定义汽车应遵循的路径(在本例中为BezierPath) 绘制定义轨道的黑线; (N / A) 绘制轨道的白色虚线中心线; (N / A) 创建定义汽车的图层; (你的图层) 沿着路径动画汽车。 (你的问题!)
您可以在此处查看参考帖子: http://nachbaur.com/2011/01/07/core-animation-part-4/
您也可以在此处下载源代码: http://cdn5.nachbaur.com/wp-content/uploads/2011/01/CALayerAnimTest.zip?25881d
希望这有帮助!
的问候,
豪尔赫。