我有一个设置有三个不同的UIWebViews,它们从互联网上加载数据。他们完成所需的时间当然和他们完成的顺序也不同。
他们开始加载这样的东西(单独的线程......):
- (void)update {
[spinner startAnimating];
[self performSelectorInBackground:@selector(webView1) withObject:nil];
[self performSelectorInBackground:@selector(webView2) withObject:nil];
[self performSelectorInBackground:@selector(webView3) withObject:nil];
}
当第一个完成后,它会停止微调器:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[spinner stopAnimating];
}
我希望微调器在所有三个UIWebView完成加载时停止。我该如何以简单的方式管理它?
答案 0 :(得分:0)
这样的东西?
- (void)webViewDidFinishLoad:(UIWebView *)webView {
end = YES;
for (int i = 0 ; i < 3 ; i ++)
if (webViews[i].loading)
end = NO;
if (end)
[spinner stopAnimating];
}
答案 1 :(得分:0)
这确实有效(有点......)
- (void)webViewDidFinishLoad:(UIWebView *)webView {
if (!webViewOne.loading && !webViewTwo.loading && !webViewThree.loading)
[spinner stopAnimating];
}
但有几次,在所有三个webview完成加载之前,微调器停止了。我想这是因为我的一些应该启动webview的进程尚未启动webview。因此if语句无论如何都可能是真的,如果一个进程比另一个进程慢得多......嗯,我需要检查一下我的进程没有运行。有什么想法吗?