通过UIBezierPath移动CALayer

我有一个图层,将在UIBezierPath上从A点移动到B点。 我发现很多样本是指CAAnimation和UIBezierPath。 但是我需要将我的图层从bezierpath上的指定点移动到另一个点。

在这里输入图像说明

任何build议,将不胜感激。

谢谢

希望这会有所帮助。

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

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

我一直在寻找这样的东西,从本教程中获得,它展示了如何遵循特定的path。 它与一辆汽车(CALayer)和一个UIBezierpath作为赛道,并按照这个顺序解决:

定义汽车应遵循的path(在这种情况下,您的贝塞尔path)绘制定义轨道的黑线; (N / A)绘制轨迹的白色虚线中心线; (N / A)创build定义汽车的图层; (你的图层)沿pathanimation汽车。 (你问了什么!)

你可以在这里查阅参考文章: http : //nachbaur.com/2011/01/07/core-animation-part-4/

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

希望这可以帮助!

问候,

乔治。