如何加快在UIScrollView滚动?
我想让UIScrollView中的分页/滚动更快,所以当用户移动手指时,不pipe加速的速度如何,下一页的速度都会比正常快。
提前致谢
调整你的UIScrollView的decelerationRate
比率。
更多阅读: UIScrollView类参考
如果我正确理解你的问题,你已经设置了ScrollView捕捉到页面(pagingEnabled = YES)。 当用户抬起手指时,你希望它能够比目前更快地抓住最近的页面?
如果这就是你想要完成的,那么我build议:
- DISABLE pagingEnabled(pagingEnabled = NO)。 我们将自己做。
- 设置一些对象(可能是ViewController)作为滚动视图的委托。
- 在滚动视图委托中,覆盖方法
scrollViewDidEndDragging:willDecelerate:
你也会想要重写方法scrollViewWillEndDragging:withVelocity:targetContentOffset:
这样你就可以获得拖动的速度了。 - 在
scrollViewDidEndDragging:willDecelerate:
,可以计算拖动的方向(使用从其他方法得到的速度),并将偏移量计算到最近的页面。 从这里,就像使用具有所需持续时间的UIView
animation块设置scrollview的contentOffset一样简单。 例如:
[UIView animateWithDuration:.25f animations:^{ scrollview.contentOffset = calculatedCGPoint; }];
这应该给你想要的效果。