2011-06-24 123 views
4

我有一个UIWebView的一些链接。当我点击链接时,链接加载前大约有2-3秒的延迟。这是它是如何假设或有一个我可以改变的设置? 谢谢。UIwebView链接延迟

+0

延迟很烦人,但它是有点怪,也许半秒的延迟在人们的脑海中变成“2-3秒”。 –

回答

0

如果您的意思是点击链接之后之前的链接被突出显示,这与UIWebView处理触摸的方式有关。我怀疑这可能会导致整个2-3秒的延迟,但无论如何,请参阅this post将其删除。

如果你的意思是点击一个链接后需要2-3秒,直到你看到页面呈现,那么它(不幸)是正常的。因为即使是简单的页面渲染速度慢也是众所周知的。

+0

您也可以使用[FastClick](http://assanka.net/content/tech/2011/08/26/fastclick-native-like-tapping-for-touch-apps/)解决UIWebView触摸延迟问题。 –

0

检查您是否在主线程上调用加载方法。如果您正在Simulator上测试它,则在辅助线程上调用方法需要一些时间来执行而不是崩溃或抛出异常。用performSelectorOnMainThread方法替换此类呼叫(如果有)。

10

在iOS5中,属于UIWebViewUIScrollView已被公开,因此您可以更改其行为。所以要去除点击延迟,你可以简单地做:

[webView.scrollView setDelaysContentTouches:NO] 

这样你就不必使用任何JavaScript库移除延迟。

作为奖励,你可以在一个UIWebView滚动感觉更加天然有点改变decelerationRate:

[webView.scrollView setDecelerationRate:UIScrollViewDecelerationRateNormal] 
+1

不幸的是,setDelaysContentTouches是触地延迟,而点击延迟是由于等待重叠引起的。这个解决方案似乎没有解决这个问题。 –

+0

这解决了我确切的问题。和更多的本地滚动+1! – micnguyen