如何加快 UIScrollView 中的滚动速度? [关闭]

Posted

技术标签:

【中文标题】如何加快 UIScrollView 中的滚动速度? [关闭]【英文标题】:How to speed up scrolling in UIScrollView? [closed] 【发布时间】:2013-02-08 19:50:01 【问题描述】:

我想让 UIScrollView 中的分页/滚动更快,所以当用户离开手指时,无论加速速度如何,下一页都会比正常速度更快。

【问题讨论】:

我尝试了decelerationRate 属性,但没有任何改变。 【参考方案1】:

调整 UIScrollView 的 decelerationRate

更多阅读:UIScrollView Class Reference

【讨论】:

UIScrollViewDecelerationRateNormal, UIScrollViewDecelerationRateFast【参考方案2】:

如果我正确理解您的问题,您已将 ScrollView 设置为捕捉到页面(pagingEnabled = YES)。当用户抬起手指时,您希望它比当前更快地捕捉到最近的页面吗?

如果这是您想要完成的,我建议您这样做:

禁用 pagingEnabled (pagingEnabled = NO)。我们会自己做。 设置一些对象(可能是 ViewController)作为滚动视图的委托。 在 Scrollview 委托中,覆盖方法 scrollViewDidEndDragging:willDecelerate:。您还需要覆盖 scrollViewWillEndDragging:withVelocity:targetContentOffset: 方法,以便获得拖动的速度。 在scrollViewDidEndDragging:willDecelerate: 中,您可以计算拖动的方向(使用从其他方法获得的速度)和到最近页面的偏移量。从那里,它就像使用具有所需持续时间的 UIView 动画块设置滚动视图的 contentOffset 一样简单。例如:

[UIView animateWithDuration:.25f animations:^ scrollview.contentOffset = calculatedCGPoint; ];

这应该会给你想要的效果。

【讨论】:

以上是关于如何加快 UIScrollView 中的滚动速度? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在显示大量文本时加快滚动响应速度

当用户向下滚动时,我可以动态更改网站的滚动速度以加快速度吗?

iPhone UIScrollView,减慢滚动

UIScrollView 的灵敏度/滚动速度与分页

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

如何更改 UIScrollView 中的滚动方向?