对于完全适合动画组方法的动画效果,如Brad Larson 的答案所示,我需要动画根据输入进行。特别是触摸和检测到的触摸的位置。处理 touchesMoved: 并为每次触摸设置元素的位置很容易,但它不像核心动画方法那样平滑。
想象一个有凹槽的轨道上的大理石。我想在一个方向或另一个方向上以任何速度将弹珠推到任何位置。动画必须做类似的事情,沿着路径移动视觉元素以响应触摸。CAKeyframeAnimation 完全具有路径位,但似乎总是希望从帧到帧的过渡基于经过的时间,而不是任何其他因素,并且在一个方向上。
1 月 31 日更新 - 感谢所有到目前为止的回复,但没有一个真正解决问题。我有一个圆形菜单,可以拖动以选择一个选项。所有这些都需要一起移动,我通过使用一个应用了旋转变换并将逆旋转变换应用到其子视图的视图来解决它,因此图标都以适当的摩天轮方向旋转。不过,当图标沿着略呈卵形的路径动画时,它看起来确实更好......大理石描述是为了弄清楚我想要做什么。也许更好地想象磁铁被定向为排斥所有在凹槽中移动的磁铁 - 移动一个,它的邻居也移动,但不一定沿着被拖动的磁铁移动的方向作为路径曲线移动。
现在的问题是遵循一个用一个圆圈创建的简单路径,但我真的很想知道如何沿着任意路径为对象设置动画,位置完全由触摸控制,不涉及速度或方向的计算。