objective-c - iOS:UIView 的简单物理

标签 objective-c ios ios5 quartz-2d uiviewanimation

我有一个 UIView,用户通过在 touchesMoved: 方法中设置其中心来拖动它。当用户放手时,我希望 UIView 根据用户移动的速度和方向从屏幕上掉下来。

我是否需要通过比较 UIView 的最后一个中心点和它的新中心点来以某种方式创建一个向量?并使用 NSTimer 每隔一段时间从向量的 y 值中减去一个固定量?

最佳答案

是的,你在计算时需要相当多的物理学知识

  1. 滑动速度
  2. 滑动方向

您需要使用 touchesMoved 方法和计时器来跟踪滑动的时间量以及对象新位置的坐标。这应该是相当简单的。找到这些后,您只需为对象添加 UIAnimation 即可移动到新位置。

~ 一个建议:

我建议您看一下 Cocos2D 并将库与您的应用程序集成。你不需要实现 touch delegate 方法并自己计算东西 ~ 有相应的库 :) 它有很多库,特别是用于移动对象(或者 sprites 如果你希望以这种方式调用它们)并且您有像 easeInEaseOut 等动画方法,这些方法可能会影响移动的对象。如果您正在开发某种游戏,也可以看看 Cocos2D 中的 chipMunk 引擎。

关于objective-c - iOS:UIView 的简单物理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10056858/

相关文章:

iphone - NSString 子串不会比较

ios - WKWebView 没有从网页上的 iframe 加载内容

iphone - 是否可以追溯获取某人安装或首次启动我的应用程序的日期?

xcode - 将 XCode 编译错误与部署目标 iOS 5.1 相匹配

ios - 我用播放按钮启动一个 NSTimer,但想按停止按钮结束它,我该如何完成呢?

ios - IOS中获取图像坐标

objective-c - 简单的 NSButton 隐藏另一个 NSButton

线程中的iOS内存泄漏

objective-c - 如何使用访问 token 在Objective-C中使用gdata将视频上传到youtube

ios - FMResultSet 中的内存泄漏 - FMDB