当我无法使用 UIScrollView 时,如何在自定义 UIView 中模拟惯性滚动?

Posted

技术标签:

【中文标题】当我无法使用 UIScrollView 时,如何在自定义 UIView 中模拟惯性滚动?【英文标题】:How can I mimic inertial scrolling in a custom UIView when I can't use UIScrollView? 【发布时间】:2010-11-26 18:14:32 【问题描述】:

我需要实现一个“无限滚动”时间线,其中捏合缩放将改变时间线的比例,而不是缩放底层视图,几乎与应用 iStreamer 的滚动视图完全相同(见下文) .我不认为我可以用 UIScrollView 做到这一点,我正在考虑实现一个自定义 UIView 来绘制时间线及其内容。

是否有任何类/公式/常量可以提供惯性滚动的“玻璃对液体”效应背后的物理模拟?

iStreamer(上图)具有重叠的可触摸元素和惯性滚动。他们可能会使用常规的 UIScrollView 来执行此操作,但我不知道如何达到相同的效果。我需要添加可以跨越很宽范围(时间轴上几年或几十年)的元素。

【问题讨论】:

【参考方案1】:

只使用 UIScrollView,不允许缩放滚动视图。相反,添加一个捏合手势识别器,实现捏合行为所需的行为。

【讨论】:

【参考方案2】:

按照 jer 的建议使用 UIGestureRecognizer,否则这可能会有所帮助:http://macresearch.org/dynamics-scrolling

【讨论】:

以上是关于当我无法使用 UIScrollView 时,如何在自定义 UIView 中模拟惯性滚动?的主要内容,如果未能解决你的问题,请参考以下文章

当我在显示的键盘上单击文本字段两次时,iOS UIScrollView 无法滚动

如何在 UIScrollView 上转到 UIView 的顶部

当我将 A UIPangesturerecognizer 添加到 UIScrollView 时,滚动被禁用

缩放时,UIScrollview 子视图无法识别手势

如何更改 UIScrollView Xcode 的 ContentOffSet

无法将 UIButton 添加到 UIScrollView