我在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];
}

10-04 12:15