2012-02-03 4 views
0

アクティビティインジケータビューに問題があり、ページの読み込みが終了してもアニメーションが継続されます。この問題は、既に訪問されたUIWebViewページでのみ発生します。ViewDidLoadの後、ナビゲーションバーのActivityIndi​​catorViewがアニメ化を続ける

私もMBProgressHUDを使用していますが、ViewDidLoadの後にアニメーションが停止します。

ページがほとんど瞬時に読み込まれ、ナビゲーションバーのアニメーションが開始されます。これは、ページがデバイスのキャッシュから引き出され、アプリケーションがロードして読み込むように見えるようなものです。

スピンナーは、別のビューコントローラーにアクセスするとアニメーションが停止するだけです。

他に誰もこれに似た問題に直面していますか?私は遅延を削除するといい作品

EDIT

- (void)showNetworkActivity { 
    [self performSelector:@selector(showNetworkActivityWithDelay) withObject:nil afterDelay:0.5]; 
} 

- (void)showNetworkActivityWithDelay { 
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; 
} 

- (void)hideNetworkActivity { 
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; 

} 

私はコードを継承したので、遅延が必要かどうかはわかりません。 networkActivityIndi​​catorを表示するのに遅れが生じるのはなぜですか?

+0

あなたはいくつかのコードを提供してもらえますか?ありがとうございます –

+0

showNetworkActivityはどこに電話しますか?遅れは必要ないと思います。 –

+0

webViewDidStartLoadで、webViewDidFinishLoadで非表示にします。以前に読み込まれたwebViewsには表示されません。問題を抱えているwebViewsのコンテンツは静的なhtmlに過ぎず、違いがあるかどうかはわかりません。 – Bunkered

答えて

0

ここに解決策があります。

[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];に直接電話してください。

performSelector:withObject:afterDelay:渡された遅延の後にセレクタを呼び出すために、同じ スレッドでスケジュールタイマー。

この例では、遅延を使用する理由は表示されません。実際には、使用するとセレクタshowNetworkActivityWithDelayが遅れて呼び出され、すぐに画面上に表示されませんでした。

は明らかに次のような従来の方法で活動の指標にロジックをラップ(しかし、それは必要はありません)し続けることができます:

- (void)showNetworkActivity { 
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; 
} 

- (void)hideNetworkActivity { 
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; 
} 
0

UIWebViewDelegateが設定されていません。デリゲートをヘッダー/実装に設定して、インジケータのアニメーションをUIWebViewDelegatewebViewDidStartLoadに開始してから、webViewDidFinishLoadwebViewDidFailLoadWithErrorでアニメーションを停止します。

+0

私は、それが表示され、アニメーション化を続けているnetworkActivityIndi​​catorであるので、少し混乱させたと思います。以前に表示された後にページがリロードされた場合にのみ発生します。私のコードは、Dan Hが提案する方法で設定されています。 – Bunkered

関連する問題