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

问题描述 投票:0回答:2

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

ios objective-c scroll pagination uiscrollview
2个回答
13
投票

调整 UIScrollView 的

decelerationRate

更多阅读:UIScrollView类参考


6
投票

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

如果这就是您想要实现的目标,这就是我的建议:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.