我想让 UIScrollView 中的分页/滚动更快,这样当用户离开手指时,无论加速速度如何,下一页都会比正常情况更快。
如果我正确理解你的问题,你已经设置了 ScrollView 来捕捉页面(pagingEnabled = YES)。 当用户抬起手指时,您希望它比当前更快地捕捉到最近的页面吗?
如果这就是您想要实现的目标,这就是我的建议:
scrollViewDidEndDragging:willDecelerate:
。 您还需要重写方法 scrollViewWillEndDragging:withVelocity:targetContentOffset:
以便可以获得拖动的速度。scrollViewDidEndDragging:willDecelerate:
中,您可以计算拖动的方向(使用从其他方法获得的速度)以及到最近页面的偏移量。 从那里开始,就像使用具有所需持续时间的 UIView
动画块设置滚动视图的 contentOffset 一样简单。 例如:[UIView animateWithDuration:.25f animations:^{
scrollview.contentOffset = calculatedCGPoint;
}];
这应该会给你想要的效果。