【发布时间】:2013-06-08 18:08:58
【问题描述】:
更新:在使用触摸时,它真的就像不为 UI 元素设置动画一样简单。它现在完美地跟随触摸,没有滞后。
我目前正在尝试通过在 UIView 子类中实现 CALayer 子类来实现 UI 功能。我在自定义 UIVIew 的相应视图控制器中接收到触摸事件,通知 UIView 触摸,然后通知 CALayer 以便为在图层中绘制的 UI 元素设置动画。
一切正常,但我注意到当运动有很大的增量时(如快速滚动手指时),CABasicAnimation 会滞后。理想情况下,我希望动画与用户的手指完美对齐。
我想出了一个 hacky 方法,可以将动画的速度设置为任意高
anim.speed = 10.0f;
这基本上跟上了用户的手指,但我觉得这是一个完全的 hack,而不是一个可交付的解决方案。为了解决这个问题,我是否应该人为地限制处理多少触摸事件?是否应该对我不知道的动画速度/持续时间进行某种计算?
感谢您对此的任何帮助!
【问题讨论】:
-
在我发布这个之后,我实际上有相同的想法来关闭动画,除了你提到的快照动画。听起来很有希望;我会在实施后发回这里,并让您知道它是否解决了滞后问题。感谢您的回复!
标签: ios core-graphics calayer cabasicanimation