无法使用UIScrollView和pagingEnabled = YES禁用退回

时间:2011-08-09 21:30:14

标签: iphone objective-c ios

UIViewController内有UIScrollView

m_scrollViewpagingEnabled=YES;

相关联

在每个“页面”上,我都有显示文章的UIViewController。

为防止用户在页面之间滑动时使用弹跳:

m_scrollView.bounces=NO;

甚至

m_scrollView.alwaysBounceHorizonal=NO;

我注意到更改仅限于最后一页未反弹的页面。 但是当刷其他页面时,它们会反弹。

修改 最佳解决方案是使第一页和最后一页反弹(因此用户将获得repsond,没有更多页面\分页)和其他页面没有弹跳

滑动页面时反弹很烦人的反弹效果并不相同。 有时它反弹得更多,而且时间更短。

我认为与页面中的加载数据有关,但我不认为是这种情况,因为当所有页面都被加载并且后台没有发生加载的异步操作时也会发生这种情况。 有什么想法吗?

编辑2: 我猜bounce属性是关于UIScrollView的边缘, 但是当从一个页面移动到另一个页面时,也会弹跳。 有时我可以看到下一页的一些内容。 例如 : 从第2页到第3页滑动,在滑动动画中,我可以看到0.1秒的第4页。

此外,滑动动画不是恒定的。并且它觉得每次滑动都没有什么不同。 提前谢谢。

3 个答案:

答案 0 :(得分:15)

这样做:

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

然后,不再反弹!

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

设置滚动条的弹跳属性为false / no ....之后不会反弹...试试希望你会得到你的解决方案....