在iOS中补间动画

时间:2012-07-02 03:01:49

标签: ios animation core-animation tween easing

我即将开始研究我的第一个大型iOS应用程序,但还没有真正启动任何代码......所以这一切都是理论上的,而且在我脑海中,因为我还处于设计阶段。

无论如何,我知道我在应用程序中需要一些动画效果,所以我只是做一些研究。在Flash(AS3)中,有像Tweener和TweenLite这样的库可以使用大量的缓动选项。

我是疯了,还是除了四个标准选项之外还没有其他的缓和选项:

  • UIViewAnimationCurveEaseIn
  • UIViewAnimationCurveEaseOut
  • UIViewAnimationCurveEaseInOut
  • UIViewAnimationCurveEaseOut

我是否真的需要深入挖掘核心动画才能实现这一目标?或者有人知道一些第三方SDK会派上用场。

谢谢大家......

2 个答案:

答案 0 :(得分:3)

实际上还有另外一个:UIViewAnimationCurveLinear ......哇,这是一个沮丧。你看到如此有限的选择的原因是因为你只是探索了UIView的核心动画包装器。核心动画功能强大,功能强大。如果需要对动画进行绝对细粒度控制,请使用CAKeyFrameAnimations,如果需要软粒度控制,请使用CAAnimation和CABasicAnimation。甚至CATransaction也会奏效。 iOS中内置了基本缓动曲线,因为您需要提供比这更复杂的交互指令。请参阅here,了解一系列适用于CAKeyframeAnimation的优化缓动曲线。当然,这不适合所有人......因此,有一个内置推文值的测试版框架here

答案 1 :(得分:1)

正如另一张海报建议的那样,关键帧动画可让您描述沿复杂曲线或指定关键点之间的运动。

如果你想要一个自定义计时功能,你可以简单地创建一个,并在任何可以指定其中一个固定计时功能的地方使用它,如线性或缓入,轻松。看一下CAMediaTiming Function类引用。具体来说,请查看方法functionWithControlPoints ::::

这使您可以使用单个三次贝塞尔曲线创建时序曲线。那是你唯一的选择,我很害怕。

你有什么影响,特别是?