【发布时间】:2014-03-27 02:33:13
【问题描述】:
实现跟踪触摸的平滑反转动画的最佳方法是什么?我指的是那些动画,例如,如果用户执行滑动手势,某些元素会在屏幕上流畅地动画,而其他元素则关闭,但是如果用户相反缓慢地来回拖动平移手势相同的对象将根据触摸位置以百分比形式向前/向后移动。这在许多应用程序介绍和过渡中都可以看到。我找到了
- 一个教程讨论了为此的内置工具,但它仅在视图控制器转换之间,不提供我在许多应用程序中看到的完整精细控制 (http://www.doubleencore.com/2013/09/ios-7-custom-transitions/)
- Jazzhands,这是 IFTTT 的一个套件,但这是一个打包的解决方案,可能无法涵盖如何在较低级别以最佳方式实施该解决方案 (https://github.com/IFTTT/JazzHands)
- 这里有一个问题,其中一个答案显示了在手势结束后如何执行动画 (iOS Touch, Gestures, Animation)
我不明白 - 而且我很习惯使用 CAAnimations 和手势 - 是如何让某些东西既动画 和 交互式 .
通常,当我创建动画时,我会提交动画,它会从头到尾进行。虽然我可以在触摸继续时打断动画,但这似乎会做作。
另一方面,根据用户输入移动物体很容易,但这不是动画。
如果某些东西可以根据动画进行更改,但也有与触摸相关的完全相同的动画发生时,效果是如何实现的,但仍然有它,因此尽管动画完成了它除非用户释放触摸,否则不会真正“完成”(变得不可逆转),而在交互过程中的任何时候,如果用户释放平移,则动画要么返回到其起始位置,要么根据最后的触摸位置和速度动画完成.这些要求令人费解。
我看到的这种技术的一瞥都涉及关键帧动画,但我不明白的是在哪里触摸事件与动画相交以创建我看到的这些平滑效果。
欢迎提供任何提示、示例或教程。
【问题讨论】:
-
这个问题 - stackoverflow.com/q/4720122/189804 - 它的答案可能会对您有所帮助。您可以通过更改符合 CAMediaTiming 的对象的 timeOffset 属性来定义动画并沿路径移动动画。
标签: ios core-animation