2

我有一个 UIWebView 加载托管在远程服务器上的页面。在文档准备就绪时,它会向服务器触发异步 jQuery.ajax 请求,以使用从服务器返回的值列表填充下拉列表。

在加载页面并执行此请求时,我有一个半透明的 UIView 和一个覆盖 UIWebView 的 UIActivityIndi​​cator。我已经实现了移除加载视图的 webViewDidFinishLoad 委托方法。

  • 在 iOS 4/5 中,此委托方法在异步请求完成后执行。这是我想要的行为。
  • 在 iOS 6 中,此委托方法在异步请求完成之前执行,并且加载视图过早消失。

有谁知道这是不是故意的。任何想法如何解决这个问题?

谢谢!

4

1 回答 1

0

我得出的结论是,这是一个有意的改变。从本质上讲,从 iOS 6 开始,webkit 异步绘制其内容:

http://developer.apple.com/library/ios/#releasenotes/General/RN-iOSSDK-6_0/_index.html#//apple_ref/doc/uid/TP40012166-CH1-SW13

因此,文档加载的异步请求将是真正异步的。UIWebView 的委托将在执行此请求时收到文档已完全加载的通知。在 iOS 6 之前,此通知将在异步请求完成后执行。所以请求并不是真正的异步。

弗格尔。

于 2012-10-12T15:40:36.830 回答