gpt4 book ai didi

objective-c - 快速滚动时未调用 UIScrollView scrollViewDidEndDragging

转载 作者:搜寻专家 更新时间:2023-10-30 19:46:31 25 4
gpt4 key购买 nike

我已经在我的 UIScrollViewDelegate 中实现了 scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate。该方法被调用没问题,除非我滚动得非常快。例如,如果我进行三次快速滑动,即使 ScrollView 将(正确地)翻页三次,该方法也只会被调用一次。

有什么办法可以解决这个问题吗?我依靠这种方法来实现正确的延迟加载行为,当它没有被调用时,就意味着不会及时加载。如果此方法没有解决方案,是否可以使用另一种方法让我知道每次用户将手指从 ScrollView 中移开?

最佳答案

哇,这是一个多么老的问题,但无论如何,这就是答案。

scrollView.delegate = self; // or some .m file

然后在实现

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
NSLog(@"Just a usual drag!");
}

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
// so when dragged quickly, this function will be called instead of didEndDragging
// now lets trick it to stop the animation of decelerating
[scrollView setContentOffset:[scrollView contentOffset] animated:NO];
// and then call the dragging event like nothing even happened
[scrollView.delegate scrollViewDidEndDragging:scrollView willDecelerate:NO];
}

关于objective-c - 快速滚动时未调用 UIScrollView scrollViewDidEndDragging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11619610/

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