UIwebView 链接延迟
Posted
技术标签:
【中文标题】UIwebView 链接延迟【英文标题】:UIwebView links delay 【发布时间】:2011-06-24 16:59:33 【问题描述】:我有一个 UIWebView,里面有一些链接。当我点击链接时,在加载链接之前会有大约 2-3 秒的延迟。这是假设的方式还是我可以更改的设置? 谢谢。
【问题讨论】:
延迟很烦人,但很有趣的是,可能半秒的延迟在人们的脑海中变成了“2-3秒”。 【参考方案1】:在 ios5 中,属于 UIWebView
的 UIScrollView
已公开,以便您可以更改其行为。因此,要消除点击延迟,您只需执行以下操作:
[webView.scrollView setDelaysContentTouches:NO]
这样您就不必使用任何 javascript 库来消除延迟。
作为奖励,您可以通过更改 decelerationRate 使 UIWebView
中的滚动感觉更加原生:
[webView.scrollView setDecelerationRate:UIScrollViewDecelerationRateNormal]
【讨论】:
不幸的是 setDelaysContentTouches 是触地延迟,而点击延迟是由于等待双击造成的。此解决方案似乎无法解决此问题。 这解决了我的确切问题。并且 +1 以获得更多原生滚动!【参考方案2】:如果您的意思是点击链接后会有延迟在链接突出显示之前,这与 UIWebView 处理触摸的方式有关。我怀疑这会导致整个 2-3 秒的延迟,但无论如何请参考this post 将其删除。
如果您的意思是单击链接后需要 2-3 秒才能看到呈现的页面,那么(不幸的是)这是正常的。 UIWebView
以渲染速度慢而闻名,即使是一个简单的页面。
【讨论】:
您还可以使用FastClick 解决 UIWebView 触摸延迟问题。【参考方案3】:检查你是否在主线程上调用加载方法。如果您在模拟器上对其进行测试,那么在辅助线程上调用方法需要一些时间来执行,而不是崩溃或抛出异常。用performSelectorOnMainThread
方法替换此类调用(如果有)。
【讨论】:
以上是关于UIwebView 链接延迟的主要内容,如果未能解决你的问题,请参考以下文章