更新:真的很简单,就像在使用触摸时不为 UI 元素设置动画一样简单。它现在完美地跟随触摸,没有滞后。
我目前正在尝试通过在 UIView 子类中实现 CALayer 子类来实现 UI 功能。我在自定义 UIVIew 的相应视图控制器中接收到触摸事件,通知 UIView 有关触摸,然后通知 CALayer 以便为在图层中绘制的 UI 元素设置动画。
这一切都有效,但我注意到当运动中有很大的增量时(如快速滚动手指时),CABasicAnimation 会落后。理想情况下,我希望动画与用户的手指完美对齐。
我想出了一种将动画的速度设置为任意高的hacky方法,如
anim.speed = 10.0f;
这基本上跟上了用户的手指,但我觉得这是一个完全的黑客攻击,而不是一个可交付的解决方案。为了解决这个问题,我是否应该人为地限制处理多少触摸事件?我应该对我不知道的动画的速度/持续时间进行某种计算吗?
感谢您对此的任何帮助!