我有一个 UIView
,用户通过在 touchesMoved:
方法中设置其中心来拖动它。当用户放手时,我希望 UIView
根据用户移动的速度和方向从屏幕上掉下来。
我是否需要通过比较 UIView
的最后一个中心点和它的新中心点来以某种方式创建一个向量?并使用 NSTimer
每隔一段时间从向量的 y 值中减去一个固定量?
最佳答案
是的,你在计算时需要相当多的物理学知识
- 滑动速度
- 滑动方向
您需要使用 touchesMoved
方法和计时器来跟踪滑动的时间量以及对象新位置的坐标。这应该是相当简单的。找到这些后,您只需为对象添加 UIAnimation
即可移动到新位置。
~ 一个建议:
我建议您看一下 Cocos2D
并将库与您的应用程序集成。你不需要实现 touch delegate
方法并自己计算东西 ~ 有相应的库 :) 它有很多库,特别是用于移动对象(或者 sprites
如果你希望以这种方式调用它们)并且您有像 easeInEaseOut
等动画方法,这些方法可能会影响移动的对象。如果您正在开发某种游戏,也可以看看 Cocos2D 中的 chipMunk
引擎。
关于objective-c - iOS:UIView 的简单物理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10056858/