0

我有一个UIWebview加载一些本地内容的。我已经连接了两个分别触发 webViewgoBackgoForward方法的按钮。

不滚动页面时,点击任一按钮可立即向后或向前导航页面。但是,如果我在当前页面滚动时点击其中一个按钮,则在当前页面停止滚动之前,下一页将不会开始加载。

我尝试登录

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest...

日志显示,直到页面完成滚动,它才会被触发。

使用 UIWebViews 默认滚动行为时,延迟非常小。但我已经改变了这一点,通过以下方式获得更原生的感觉:

webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal;

滚动长页面时,问题变得很明显,因为在滚动完成并加载下一页之前可能需要几秒钟。

有没有其他人经历过这个并找到了解决方案?

4

1 回答 1

1

因为 UIScrollview 中的事件跟踪阻塞了主线程。

您可以尝试在另一个 Web 操作之前强制 scrollView 结束滚动(或减速)。

参考: 如何以编程方式强制停止 UIScrollView 中的滚动?

于 2013-08-28T08:20:22.850 回答