如何加快UIScrollView中的滚动?

时间:2013-02-08 19:50:01

标签: ios objective-c uiscrollview scroll paging

我想在UIScrollView中进行分页/滚动更快,所以当用户左手伸出时,无论加速的速度如何,下一页都会比平常更快。

提前致谢

2 个答案:

答案 0 :(得分:10)

调整UIScrollView的decelerationRate

更多阅读:UIScrollView Class Reference

答案 1 :(得分:4)

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

如果那是你想要完成的事情,我建议这样做:

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

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

这应该会给你带来理想的效果。