如何动画结束和控制点SWIFT

时间:2016-03-05 16:39:49

标签: swift uibezierpath cashapelayer cabasicanimation animatewithduration

我的视图中有一个CAShapeLayer,它有一个Bezierpath实例的CGPath转换路径。我现在想要为结尾和两个控制点设置动画,例如该线的末端正在移动(不停止)。怎么做?我查看了CABasicAninmations,但没有得到如何访问终点。与持续时间的动画相同。如何在无尽的时间内实现这一目标。

2 个答案:

答案 0 :(得分:3)

以下是一些可能性。

  • 提前配置动画,即通过生成一系列绘图,就像卡通的单元格一样,并使用这些图像的简单UIImageView动画。

  • 使用CAShapeLayer并在两个path值之间设置动画。不幸的是,这并不能让你完全控制中间帧,但你可以使用关键帧动画来提供中间帧,从而提供额外的控制。

  • 为绘图的实际点设置动画。这是最难配置的,但它是真正的动画,它让您完全控制动画。这就是我在这里所做的:我通过创建一个自定义的可动画属性来做到这一点 - 在这种情况下,一个属性表示三角形底点的x位置。您必须为所有想要制作动画的点做到这一点。

enter image description here

答案 1 :(得分:2)

您可以使用CADisplayLink(类似于NSTimer,但动画帧更新的最佳时间除外)并更新path的{​​{1}}。

例如:

CAShapeLayer

产量:

enter image description here