UIScrollView无限滚动,无需分页

时间:2011-09-24 23:38:49

标签: objective-c uiscrollview infinite-scroll

这里的第一个问题,很好:P

我正在尝试创建一个无限的UIScrollView(我使用了“StreetScroller”苹果演示项目)。当UIScrollView几乎位于contentSize的末尾时,contentOffset将设置为contentSize的中心,并且所有子视图都会移动,因此对用户来说是透明的。

当你慢慢滚动时它可以正常工作,但是当你滚动得太快而你到达UIScrollView的末尾时,事情变得很奇怪。

在我的情况下,我使用带有frame.size.width = 320和contentSize.x = 3 * frame.size.width的UIScrollView。 这就是当您滚动太快并且到达contentSize的末尾时日志中发生的情况(如果向右滚动时x> 560):

- >由于惯性,UIScrollView正在滚动

SetContentOffset called width x : 504.730072
SetContentOffset called width x : 516.878967
SetContentOffset called width x : 528.489990
SetContentOffset called width x : 540.347656
SetContentOffset called width x : 550.754028
SetContentOffset called width x : 561.200378

- > UIScrollView到达contentSize的末尾,因此我们重新定位

The next call of setContentOffset is for recentering the view
SetContentOffset called width x : 320.000000

- >这是问题,UIScrollView不会在帐户中更改contentOffset.x,它会继续使用最后一个contentOffset.x值的动画....

SetContentOffset called width x : 571.421753
The next call of setContentOffset is for recentering the view
SetContentOffset called width x : 320.000000
SetContentOffset called width x : 581.283447
The next call of setContentOffset is for recentering the view
SetContentOffset called width x : 320.000000
SetContentOffset called width x : 610.100952

这一直持续到动画结束。

如果某人有解决方案来设置contentOffset并强制UIScrollView更新其动画:)

我在stackoverflow和其他网站上阅读了关于无限UIScrollView的几乎所有主题,我没有看到在动画期间更改contentOffset的任何工作解决方案,我试图重新定位所有不同的UIScrollView委托方法。而且我不想在滚动期间更改contentSize(只有当您向右滚动或机器人时它才有效...)

1 个答案:

答案 0 :(得分:0)

我刚刚在iOS模拟器4.3中运行的Apple StreetScroller示例中发现了这个问题。

我在这里看到了这个问题:Infinite UIScrollView gets strange behavior in iOS4.3 not iOS5并且只是在iOS 5模拟器中进行了测试,并且可以确认它在那里按预期运行。

不知道4.3中相同代码的问题是什么。