gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 05:09:03 26 4
gpt4 key购买 nike

这里是第一个问题,很好: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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com