更新:在使用触摸时,实际上就像没有动画UI元素一样简单。它完全遵循现在的触摸而没有延迟。
我目前正在尝试通过在UIView子类中实现CALayer子类来实现UI功能。我在自定义UIVIew的相应视图控制器中接收触摸事件,通知UIView关于触摸,然后通知CALayer以动画在图层中绘制的UI元素。
一切正常,但我注意到当运动中存在大的三角形时(如快速滚动手指时),CABasicAnimation就会落后。理想情况下,我希望动画与用户的手指保持完美对齐。
我想出了一种简单的设置动画速度的方法,如
anim.speed = 10.0f;
基本上与用户的手指保持一致,但我觉得这是一个彻头彻尾的黑客,而不是一个可交付的解决方案。我是否应该人为地限制处理多少触摸事件以解决此问题?对于我不知道的动画的速度/持续时间,我应该做些什么计算吗?
感谢您对此提供任何帮助!
答案 0 :(得分:1)
你是否尝试过完全关闭动画?我通常不会在连续手势中制作动画,但只会在我放开时进行动画制作(例如,将其捕捉到正确的位置)。通常有足够的触摸事件,您在连续手势期间仍然可以获得超平滑的UI,而不会出现任何动画延迟。