我知道可以使用通常的UIWebView
委托方法实现加载UIView
webViewDidStartLoad:
和webViewDidFinishLoad:
但是,这种方法意味着您必须等待所有图像和.gif
完全下载,然后再删除加载视图。 由于默认情况下UIWebView
异步(延迟)在页面上加载图像,因此我想在呈现页面时删除加载视图,但不一定等到图像全部下载完毕。
我还没有找到任何这方面的资源,但我确信它已经完成,因为它是一个非常重要的优化。 有什么想法吗?
在这个问题的帮助下,你可以在 DOM 完成加载时使用 JavaScript 更改 UIWebView 的窗口位置,就像这样 (jQuery):
$(document).ready(function(){
location.href = http://removeLoadingScreen
})
然后使用 UIWebView 委托方法选取该链接并删除加载屏幕:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = request.URL;
if([[url absoluteString] isEqualToString:@"http://removeLoadingScreen"]){
// remove loading screen
}
}
图像和.gif尚未下载,但页面的其余部分将下载。 一个缺点是图像的空间可能会也可能不会被阻止,因此一旦图像出现,文本内容可能会跳到页面下方。