objective-c - UIScrollView无限滚动无分页

标签 objective-c uiscrollview infinite-scroll

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

我正在尝试制作一个无限的 UIScrollView(我使用了“StreetScroller”苹果演示项目)。当 UIScrollView 几乎到达 contentSize 的末尾时,contentOffset 被设置为 contentSize 的中心,所有 subview 都被移动,因此对用户来说是透明的。

当您缓慢滚动时它可以正常工作,但是当您滚动得太快并且到达 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 委托(delegate)方法。而且我不想在滚动过程中更改 contentSize(它仅在您向右滚动或向右滚动时才有效...)

最佳答案

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

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

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

关于objective-c - UIScrollView无限滚动无分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7542656/

相关文章:

ios - 正确的单例模式 Objective-C (iOS)?

ios - 在 Flutter 插件中从 Objective-C 加载原生 C 库

iphone - 通过运行未签名的可执行文件检测越狱的 iOS 设备

iphone - 在photoscroller应用程序(iPhone WWDC-104照片应用程序)中,使用presentModalviewController调用时,uiscrollview图像向右移动

ios - ScrollView 将内容移出 View

javascript - 脚本不会加载无限滚动和砌体

php - 这是在我的网站上创建无限滚动系统的正确方法吗?

objective-c - 如何在ARC下自动释放未返回的对象

ios - 缩放 ScrollView 内的旋转图像以适合(填充)覆盖矩形的框架

javascript - 如何在React中使用可变高度元素实现无限滚动?