I want to make paging/scrolling in UIScrollView to be faster, so when the user lefts his finger the next page will come faster than normal regardless the speed of the acceleration.
问问题
9614 次
2 回答
11
调整decelerationRate
你的 UIScrollView。
更多阅读:UIScrollView 类参考
于 2013-02-08T20:22:09.307 回答
5
如果我正确理解您的问题,您已将 ScrollView 设置为对齐页面(pagingEnabled = YES)。当用户抬起手指时,您希望它比当前更快地捕捉到最近的页面吗?
如果这就是您要完成的任务,我建议您这样做:
- 禁用 pagingEnabled (pagingEnabled = NO)。我们要自己做。
- 设置一些对象(可能是 ViewController)作为滚动视图的委托。
- 在 Scrollview 委托中,覆盖方法
scrollViewDidEndDragging:willDecelerate:
。您还需要覆盖该方法scrollViewWillEndDragging:withVelocity:targetContentOffset:
,以便获得拖动的速度。 - 在 中
scrollViewDidEndDragging:willDecelerate:
,您可以计算拖动的方向(使用从其他方法获得的速度)和到最近页面的偏移量。UIView
从那里,它就像使用具有所需持续时间的动画块设置滚动视图的 contentOffset 一样简单。例如:
[UIView animateWithDuration:.25f animations:^{
scrollview.contentOffset = calculatedCGPoint;
}];
这应该会给你想要的效果。
于 2013-02-08T20:46:54.737 回答