如何延迟/减慢 UIScrollView 平移速度

Posted

技术标签:

【中文标题】如何延迟/减慢 UIScrollView 平移速度【英文标题】:How to delay/slow down UIScrollView panning speed 【发布时间】:2016-04-12 13:14:51 【问题描述】:

我有一个 UIScrollview,我可以用它放大和缩小,并平移。但是,我想给 ScrollView 一种漂浮的感觉,将手指从屏幕的左侧移动到右侧会使 UIScrollView 以一种在开始时逐渐加速并在结束时逐渐减慢的方式平移。

没有什么过于戏剧化或令人迷失方向,而是为 UIScrollView 提供了一种很好的失重感。这是可能的,如果是这样,我将如何处理?

感谢所有帮助。

【问题讨论】:

【参考方案1】:

正如另一个答案中提到的,UIScrollView 具有 decelerationRate 属性,具有两个预定义的常量 UIScrollViewDecelerationRateFastUIScrollViewDecelerationRateNormal 值。

但是如果你想减慢减速率,你可能想使用自定义浮点值,比如:

scrollView.decelerationRate = 0.4;

尝试使用此值并找到最适合您的值。

【讨论】:

这非常适合减速,谢谢!虽然我也希望有一种加速速率转换器,如果有任何已知的方法可以做到这一点。 没有简单的方法可以做到这一点。您可以调查在 UIScrollView 中修改标准平移手势识别器的可能性,并尝试通过从该识别器接收手势来控制它的偏移量。或者添加另一个 UIPanGestureRecognizer 来滚动视图并使用它。无论如何,这是非常复杂的事情,然后只是修改减速率。 好吧,无论如何感谢您对第一点的帮助:) 我接受这个作为答案,因为浮点数的使用范围比预设值更大,如下面的答案所示. 谢谢!乐于助人:)【参考方案2】:

有两种选择,

scrollView.decelerationRate = UIScrollViewDecelerationRateFast;
scrollView.decelerationRate = UIScrollViewDecelerationRateNormal;

如果它可以帮助你!

【讨论】:

以上是关于如何延迟/减慢 UIScrollView 平移速度的主要内容,如果未能解决你的问题,请参考以下文章

Google Maps API v3 中的 OVER_QUERY_LIMIT:如何在 Javascript 中暂停/延迟以减慢速度?

如何区分 UIScrollView 中的平移和滚动

如何禁用 UIScrollView 到平移手势识别器?

Yandex metrika 标签减慢网站速度谷歌页面速度 isights 报告

为啥程序背景会减慢 UIScrollView?

阴影减慢 UIScrollView