scrollViewDidScroll scrollViewWillEndDragging 在主线程上同时运行?

Posted

技术标签:

【中文标题】scrollViewDidScroll scrollViewWillEndDragging 在主线程上同时运行?【英文标题】:scrollViewDidScroll scrollViewWillEndDragging runs simultaneously on main thread? 【发布时间】:2016-11-14 05:52:26 【问题描述】:

我对@9​​87654325@ scrollViewWillEndDragging 感到困惑。它们是否以异步方式工作?

我发现有一刻,scrollViewDidScrollscrollViewWillEndDragging已触发未完成

ps:NO BLOCK在我的代码中

编辑

我将在scrollViewDidScroll 中使用一个属性,该属性将在scrollViewWillEndDragging 末尾更新。我的问题是 scrollViewDidScrollscrollViewWillEndDragging 是否以异步方式运行。如果是这样,我需要使用锁来防止它。

【问题讨论】:

未完成是什么意思? stacktrack 创建的断点没有到达 scrollViewDidScroll 和 scrollViewWillEndDragging @Rajat 的末尾 可以看到截图,断点后依然是代码 您的断点已激活,您需要按 Play 继续执行您的代码。 【参考方案1】:

scrollViewWillEndDragging

当用户完成滚动您的UIScrollView 中的内容时,将调用此UIScrollViewDelegate 方法。

scrollViewDidScroll

当用户滚动您的UIScrollView 中的内容时,将调用此UIScrollViewDelegate方法。

【讨论】:

谢谢你,我已经更新了我的问题,希望它能帮助你理解我的问题... @Tepmnthar 您想检测用户何时开始滚动以及何时结束滚动? 当scrollview仍在滚动(减速)时,我想使用scrollViewWillEndDragging中设置的新值。 检查这个方法 - developer.apple.com/reference/uikit/uiscrollviewdelegate/… 我终于找到了这个why-scrollViewDidScroll-triggeredl。我在scrollViewWillEndDragging 中编辑了 contentOffset,然后触发了scrollViewDidScroll。我的错。很抱歉没有提供足够的信息。任何方式都非常感谢你。

以上是关于scrollViewDidScroll scrollViewWillEndDragging 在主线程上同时运行?的主要内容,如果未能解决你的问题,请参考以下文章

在 UIWebView 中没有调用 scrollViewDidScroll

禁用 scrollViewDidScroll:滚动 UICollectionView 时 - iOS

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 在 iOS 8 中太慢了

使用 scrollViewDidScroll 处理多个 Collection View Cells

如何从 UIViewController 访问 scrollViewDidScroll

我的应用调用 scrollViewDidScroll 19 次