无法使用UIScrollView禁用反弹,并且pagingEnabled = YES

问题描述:

我有UIViewController,其中包含UIScrollView无法使用UIScrollView禁用反弹,并且pagingEnabled = YES

m_scrollViewpagingEnabled=YES;

在每个 “页面” 我的UIViewController的显示条。

为了避免弹跳时从页面的用户刷卡页我用:

m_scrollView.bounces=NO;

甚至

m_scrollView.alwaysBounceHorizonal=NO;

我注意到变化只有到最后一页是不反弹。 但是当滑动其他页面时,它们会弹跳。

编辑: 最佳的解决方案是让第一页和最后一页反弹(因此用户将获得repsond没有更多的页\分页)和其他页面不反弹

恼人与反弹当滑动页面时弹跳效果并不相同。有时候它反弹得更多,而且时间更短。

我觉得与页面中的加载数据有关,但我不认为是这种情况,导致它也发生在所有页面都加载并且加载的异步操作在后台发生时发生。 任何想法?

编辑2: 我猜的反弹性质是有关的UIScrollView, 的边缘但是从页面移动到页面时也反弹。 有时我可以看到下一页的一小部分。 例如: 从第2页滑动到第3页,在滑动动画中我可以看到0.1秒第4页4.

此外,滑动的动画不是恒定的。并觉得每一次刷卡都没有什么不同。 在此先感谢。

+0

你是什么意思“在页面之间跳动”?当用户到达scrollview的任何边时,弹跳的整个点是“反弹”,在pagingEnabled滚动视图中的页面之间没有弹跳。 –

+0

如果我在滚动视图中有10个“页面”。 当我从第2页滑动到第3页时(例如) 我随机获得此结果: -第3页达到边界,有点“反弹” ) -第3页到达是边界,我可以在反弹之前看到第4页的一点点 -page 3到达边界并停止(这就是我想要的) 再次,滑动的动画不是恒定的,并且它不是UI友好的。 希望我在这里很清楚。 – perr200

+0

行为取决于您在释放之前拖动多少,请检查滚动委托方法以查看是否可以使用更多细节控制它 – bshirley

如果您为您的UIScrollView设置代理,则当用户将手指从屏幕上抬起时,代表将收到scrollViewWillBeginDecelerating:。你可能然后能够采取控制使用UIScrollView的setContentOffset:animated:方法滚动最近的页面到视图中,或使用animateWithDuration:animations:方法设置您自己的动画 - 我不确定您自己的动画是否优先于已经存在的动画,正在进行的减速,但。

您还可以将UIScrollView的decelerationRate设置为UIScrollViewDecelerationRateFast,这可能会使滚动在此情况下更加一致。

集滚动条的反弹属性假/否....它不会反弹后...尝试是希望宇会得到您的解决方案....

只是这样做:

_scrollView = [[UIScrollView alloc]init]; 
_scrollView.pagingEnabled = YES; 
_scrollView.bounces = NO; //Here 

然后,不再弹跳!