【问题标题】:UIwebView links delayUIwebView 链接延迟
【发布时间】:2011-06-24 16:59:33
【问题描述】:

我有一个 UIWebView,里面有一些链接。当我点击链接时,在加载链接之前会有大约 2-3 秒的延迟。这是假设的方式还是我可以更改的设置? 谢谢。

【问题讨论】:

  • 延迟很烦人,但很有趣的是,可能半秒的延迟在人们的脑海中变成了“2-3秒”。

标签: iphone objective-c ios cocoa-touch uiwebview


【解决方案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 方法替换此类调用(如果有)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    相关资源
    最近更新 更多