是否可以继承CAAnimation?

时间:2016-04-26 05:17:00

标签: ios core-animation

我只是想通过一个中心点为C和半径为R的弧,将一个层的position属性从A点动画到B点。这么简单但我觉得我想把Core Animation弯成两半来这样做。

似乎理想的方法是简单地创建一个自定义CAPropertyAnimation子类,如:

let anim = MyArcPropertyAnimation(keyPath: "position", center: CGPoint, radius: CGFloat)
anim.fromValue = fromPoint
anim.toValue = toPoint
myLayer.addAnimation(anim, forKey: "positionArcAnimation")

但我找不到关于子类CAAnimation或其任何衍生物的任何信息。 CAValueFunction似乎也是如此,否则看起来也很有希望。

注意:我很容易使用POP运行它,但发现as warned by a facebook engineer,我的使用效果太慢了。

1 个答案:

答案 0 :(得分:3)

文档似乎暗示CAAnimation不是为子类化而设计的。此外,大多数动画都是在窗口服务器中执行的(名为backboardd),您绝对无法让backboardd执行您的代码。

无论如何,听起来你可以使用CAKeyframeAnimation获得想要的效果。将path的{​​{1}}属性设置为您希望图层遵循的弧。游乐场示例:

CAKeyframeAnimation

结果:

playground demo