CABasicAnimation速度 - 跟上用户输入

时间:2013-06-08 18:08:58

标签: ios core-graphics calayer cabasicanimation

更新:在使用触摸时,实际上就像没有动画UI元素一样简单。它完全遵循现在的触摸而没有延迟。

我目前正在尝试通过在UIView子类中实现CALayer子类来实现UI功能。我在自定义UIVIew的相应视图控制器中接收触摸事件,通知UIView关于触摸,然后通知CALayer以动画在图层中绘制的UI元素。

一切正常,但我注意到当运动中存在大的三角形时(如快速滚动手指时),CABasicAnimation就会落后。理想情况下,我希望动画与用户的手指保持完美对齐。

我想出了一种简单的设置动画速度的方法,如

anim.speed = 10.0f;

基本上与用户的手指保持一致,但我觉得这是一个彻头彻尾的黑客,而不是一个可交付的解决方案。我是否应该人为地限制处理多少触摸事件以解决此问题?对于我不知道的动画的速度/持续时间,我应该做些什么计算吗?

感谢您对此提供任何帮助!

1 个答案:

答案 0 :(得分:1)

你是否尝试过完全关闭动画?我通常不会在连续手势中制作动画,但只会在我放开时进行动画制作(例如,将其捕捉到正确的位置)。通常有足够的触摸事件,您在连续手势期间仍然可以获得超平滑的UI,而不会出现任何动画延迟。