我知道可以使用通常的UIView
委托方法UIWebView
和webViewDidStartLoad:
webViewDidFinishLoad:
但是,这种方法意味着您必须等待所有图像和.gif
完全下载才能删除加载视图。由于UIWebView
默认异步(延迟)在页面上加载图像,我想在呈现页面时删除加载视图,但不一定等到图像全部下载。
我没有找到任何资源,但我确信它已经完成,因为它是一个非常重要的优化。有任何想法吗?
答案 0 :(得分:1)
在this questions的帮助下,您可以使用JavaScript在DOM加载完成后更改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文件尚未下载,但页面的其余部分将是。一个缺点是图像的空间可能会被阻挡,也可能不会被阻挡,因此一旦图像出现,文本内容可能会跳到页面上。