我有UIWebview
加载一些本地内容。我连接了两个按钮,分别激活了webView的goBack
和goForward
方法。
当不滚动页面时,点击任一按钮即可向后或向前导航页面。但是,如果我在当前页面滚动时点击其中一个按钮,则在当前页面停止滚动之前,下一页将不会开始加载。
我试过登录
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest...
日志显示在页面滚动完成之前不会被触发。
使用UIWebViews默认滚动行为时,延迟非常小。但是我已经改变了这一点,通过这样做来获得更原生的感觉:
webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal;
滚动长页面时,问题变得很明显,因为在滚动完成和下一页加载之前可能需要几秒钟。
有没有其他人经历过这个并找到了解决方案?
答案 0 :(得分:1)
因为UIScrollview中的事件跟踪阻止了主线程。
您可以尝试在另一个Web操作之前强制滚动滚动结束滚动(或减速)。
价: How can I programmatically force-stop scrolling in a UIScrollView?