2011-08-09 6 views
0

インターネットからデータをロードする3つの異なるUIWebViewを持つセットアップがあります。彼らが終了するのにかかる時間はもちろん、仕上げの順序も異なります。複数のUIWebViewと単一のアクティビティスピナー

彼らはこのような彼らの負荷何か(別々のスレッド...)開始:

- (void)update { 
    [spinner startAnimating]; 
    [self performSelectorInBackground:@selector(webView1) withObject:nil]; 
    [self performSelectorInBackground:@selector(webView2) withObject:nil]; 
    [self performSelectorInBackground:@selector(webView3) withObject:nil]; 
} 

そして、最初の1が終了したとき、それはスピナーを停止します

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    [spinner stopAnimating]; 
} 

私はスピナーがしたいの3つすべてのUIWebViewがロードされた時点で停止します。それを簡単な方法でどのように管理するのですか?

答えて

0

これは

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    if (!webViewOne.loading && !webViewTwo.loading && !webViewThree.loading) 
     [spinner stopAnimating]; 
} 

しかし、すべての3 webviewsのロードが完了する前にスピナーが停止し、いくつかの数回(一種の...)仕事をしました。 Webビューを開始する必要のあるプロセスのいくつかがまだWebviewを開始していないため、私はそれを推測します。したがって、あるプロセスが別のプロセスよりもはるかに遅い場合は、if文が真になる可能性があります。うーん、プロセスが実行されていないことを確認する必要があります。何か案は?

0

これは何か?

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
     end = YES; 
     for (int i = 0 ; i < 3 ; i ++) 
     if (webViews[i].loading) 
      end = NO; 

     if (end) 
      [spinner stopAnimating]; 
    } 
+0

いいえ、私はWebViewsにiを使用できませんでした。とにかくありがとう :) – user872661

関連する問題