gpt4 book ai didi

objective-c - 为什么我向同一个方向快速滑动两次时,UIScrollView 会剧烈滚动?

转载 作者:技术小花猫 更新时间:2023-10-29 10:40:09 25 4
gpt4 key购买 nike

在 UIScrollview 中水平滚动时,如果我在同一方向快速滑动两次, ScrollView 会剧烈跳动。有什么办法可以防止这种情况发生吗?为了详细解释,这里有一个来自 ScrollView 的事件日志,在大多数委托(delegate)方法中,我只打印 x 坐标。

scrollViewWillBeginDragging:
14:55:12.034 Will begin dragging!
14:55:12.037 - Position -0.000000
scrollViewWillBeginDeceleration:
14:55:12.129 Deceleration rate 0.998000
14:55:12.152 + Position 314.000000
scrollViewWillBeginDragging:
14:55:12.500 Will begin dragging!
14:55:12.522 - Position 1211.000000
scrollViewWillBeginDeceleration:
14:55:12.530 Deceleration rate 0.998000
14:55:12.533 + Position 1389.000000
scrollViewDidScroll: (printing values < 0 && > 6000 (bounds.size.width)
14:55:12.595 !!! Position 7819.000000
14:55:12.628 !!! Position 9643.000000
14:55:12.658 !!! Position 10213.000000
14:55:12.688 !!! Position 10121.000000
14:55:12.716 !!! Position 9930.000000
... contentoffset.x drops with around 400 each scrollviewdidscroll call ...
14:55:13.049 !!! Position 6508.000000
scrollViewDidEndDecelerating:
14:55:13.753 Will end deceleration
14:55:13.761 * Position 6144.000000

日志中最值得注意的事情是在 scrollViewWillBeginDeceleration 之后,contentoffset.x 在几毫秒内跳跃了约 6000 点。

实现

uiscrollview 和 uiscrollviewdelegate 在同一个类中,是 uiscrollview 的子类,它也实现了 uiscrollviewdelegate 协议(protocol),没有对 contentoffset 做任何特殊处理,在 scrollview 上设置的唯一属性是:

    self.showsHorizontalScrollIndicator = YES;
self.scrollsToTop = NO;
self.delegate = self;

ScrollView subview 从托管 uiscrollview 的 uiviewcontroller 中的 viewwillappear 调用添加一次(并且 contentSize 已适当设置)。滚动,稍等片刻,然后再次滚动完美无缺。

最佳答案

在您需要的方向上设置 ScrollView 以及您想要滚动的坐标并使用与XIB的正确连接然后它将工作很好。

关于objective-c - 为什么我向同一个方向快速滑动两次时,UIScrollView 会剧烈滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6873707/

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