【发布时间】:2011-05-02 11:57:06
【问题描述】:
我有一个可以用手指拖动的 UIView,我使用 UIPanGestureRecognizer 实现了它。这允许我水平拖动视图;左或右。
我在从 UIPanGestureRecognizer 接收以下状态时使我的视图移动(使用 translationInView: 方法):
- UIGestureRecognizerStateBegan
- UIGestureRecognizerStateChanged
现在发生的情况是,一旦手指离开屏幕表面,视图就会停止移动,这会呈现非自然的效果。
我想要的是,拖动视图从 UIGestureRecognizerStateEnded 状态开始通过平稳停止而减速。
UIScrollView 类和子类(UIWebView、UITableView 等)使用这种行为。
我已经尝试了几种方法,通过计算速度、触摸发生的时间和停止停止距离等。但老实说,我有一种无处可去的自然行为的感觉。我什至尝试使用像 Chipmunk 这样的物理引擎。但我发现这对于我试图实现的目标来说很复杂,而且我很确定应该有一个更好(如果不是更简单的话)的解决方案。
非常感谢!
杰里米
【问题讨论】:
-
你尝试过 UIScrollView decelerationRate 吗?
-
我根本没有使用 UIScrollView,也没有使用子类。我只是想实现一个减速机制。
-
目前还没有完美的解决方案...如果您有想法,欢迎您!但坦率地说,我认为最好的方法是使用能够无缝处理所有这些的物理引擎。