通过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
希望这可以帮助!
问候,
乔治。
- 禁用方向更改旋转animation
- iOS:使用UIView的“drawRect:”与其图层的delagate“drawLayer:inContext:”
- animationUITextField指示一个错误的密码
- CoreAnimation性能分析 – 带有CAShapeLayer的CAReplicatorLayer
- 在Mac OS X 10.7 Lion上使用Core Animation进行AVFoundation问题
- 我如何使通过-addSublayer添加的UI元素:响应触摸事件?
- setNeedsDisplayInRect:导致整个视图被更新
- 从下往上移动UIView
- 核心animation进度callback