因此,对于我的应用程序,我在当前视图 (classesWebView) 之上添加了一个视图 (aView) 作为子视图。所有的 aView 都是一个 UIView,上面有一个 UIActivityIndicatorView,它应该在下面的视图(classesWebView)加载适当的网页时进行动画处理。
我可以看到 classesWebView 网页确实出现了(aView 的 alpha 为 0.5),但是一旦它完成加载,aView 就会被发送 [aView removeFromSuperview] 并且它消失了,但是在它消失之后,剩下的就是在它的地方有一个白色的屏幕。
我已经为其他两种方法这样做了,我不知道为什么,仅在这种方法上,它拒绝合作。
任何建议,将不胜感激。该应用程序适用于 iOS 6。
viewDidLoad 方法:
-(void)viewDidLoad
{
[super viewDidLoad];
classesWebView.delegate = self;
[classesWebView addSubview:aView];
NSURL *class = [NSURL URLWithString:@"mywebistelink"];
NSURLRequest *classRequest = [NSURLRequest requestWithURL:class];
[classesWebView loadRequest:classRequest];
}
webViewDidStartLoad 方法:
preView 和 switchView 是活动指示器。
- (void)webViewDidStartLoad:(UIWebView *) webview
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
if(aView.superview != nil)
{
[preView startAnimating];
}
else
{
[switchView startAnimating];
}
}
webViewDidFinishLoad 方法:
- (void)webViewDidFinishLoad:(UIWebView *) webview
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
if(aView.superview != nil)
{
[aView removeFromSuperview];
[preView stopAnimating];
[preView setOpaque:false];
}
else
{
[switchView stopAnimating];
[switchView setOpaque:false];
}
}
[进一步明确:我有 if 语句的原因是因为我在加载页面时想要 classesWebView 的另一个指示器,但我不希望它出现,除非 aView 消失(因为 aView 已经有它的指示器:preView)]
编辑:只是为了证明它只是导致问题的 removeFromSuperview ,如果我调用 [aView setAlpha:0.0] 它会消失并且它下面的 webPage 正确加载。但是我调用 [aView removeFromSuperview] 的第二个网页变成了白屏。T_T