2009-12-28 94 views
1

我有我正在实现自己的滚动逻辑的水平列表。我的“触摸和拖动”滚动效果很好,但我在“轻弹”手势上遇到了问题。所有内置的可滚动视图都具有这样的功能:如果您“轻拂”视图,则基于轻弹的强度,它会更快或更慢地滚动。如何在iPhone上对“轻弹”手势进行平滑滚动编码

有没有人有任何建议如何做到这一点我的看法?

我在做什么,现在正在改变我的自定义的UIView的UIView.center.x坐标在屏幕上

+3

有什么特别的原因,你不能使用'UIScrollView'类? – pix0r 2009-12-28 18:45:39

+2

只需在UIScrollView中粘贴视图并设置UIScrollView的contentSize属性即可。简单。 – 2009-12-28 20:08:21

回答

9

我强烈建议你找出如何利用内置的UIScrollView的滚动它类。苹果已经投入了大量的努力使滚动感觉“正确”。您可以重新创建一些或甚至所有的感觉,但这需要很多工作。最好是背上已经完成的事情。

1

如果要实现自己的滚动视图,则必须根据扫视距离的长度和穿过屏幕的速度来制作视图。
以这些参数作为输入并使用简单的geometry math,您可以计算扫描结束后视图应滚动多长时间(touchesEnded事件)。 当然这并不像听起来那么简单,这使得轻弹手势感觉合适,自然也更难。

1

如果你真的想自己做这件事,Drew McCormack有great article on MacResearch他解释了基于动量滚动背后的一些物理。他的实现使用HTML,CSS和JavaScript,但核心原则可能会引入您的自定义UIView子类。