我在ios应用程序中加载了一个网页。在加载时,我会显示一个本地图像以避免黑屏一段时间。
我在viewDidLoad中使用以下代码:
[myWebView setDelegate:self];
theLoadingImageView = [[UIImageView alloc] initWithFrame:myWebView.frame];
if([[UIDevice currentDevice] userInterfaceIdiom] ==UIUserInterfaceIdiomPhone){
theLoadingImageView.image = [UIImage imageNamed:@"splash_iphone.png"];
}
else{
theLoadingImageView.image = [UIImage imageNamed:@"splash_ipad.png"];
}
self.logoApp = theLoadingImageView;
[myWebView addSubview:theLoadingImageView];
代表们补充说:
-(void)webViewDidStartLoad:(UIWebView *)myWebView {
NSLog(@"start");
theLoadingImageView.hidden = NO;
}
-(void)webViewDidFinishLoad:(UIWebView *)myWebView {
NSLog(@"finish");
theLoadingImageView.hidden = YES;
}
但是有时,在我的网页各部分之间切换时,启动屏幕会显示一秒钟,然后再次隐藏。
为什么会这样呢?我可以避免吗?
最佳答案
UIWebView完全有可能对子视图进行重新排序(毕竟,这只是带有子视图的UIScrollView)。您应该尝试致电:
-(void)webViewDidStartLoad:(UIWebView *)myWebView {
NSLog(@"start");
theLoadingImageView.hidden = NO;
[myWebView bringSubviewToFront:theLoadingImageView];
}