1

データがバックグラウンドで非同期にプルされていることを示す MBProgressHUD があります。ネットワークが遅い場合、これには永遠にかかることがあります。そのため、現在のところ、閉じられていない場合は 30 秒後に非表示にしています。ネットワーク接続が遅い場合にこの HUD を非表示にする良い方法は何ですか?

4

2 に答える 2

4

最善の解決策はおそらく、データがロードされている間ずっと HUD を上げたままにして、何かが起こっていることをユーザーが認識できるようにすることです。また、アプリに適している場合は、キャンセルするオプションをユーザーに提供することもできます。あるいは、データを少しずつ読み込んで表示できる場合 (つまり、データのセット全体を取得する前に)、UI で何かを表示し始めるのに十分なデータが得られるまで HUD を表示する必要があります。ユーザーと対話できます。

基本的に、回避したいのは、ユーザーには何も起こっていないように見え、UI が基本的に空白で何もすることがないという状況です。

于 2012-01-31T19:39:22.547 に答える
0

MBProgressHUD デリゲートを実装する

ネットワーク接続が速いか遅いかに関係なく、毎回呼び出されます。ネットワーク接続が遅い場合はタイムアウトが発生し、このデリゲートが起動されます。このデリゲートのスーパービューから hud を削除します

-(void)hudWasHidden
{
    [HUD removeFromSuperview];

}
于 2012-01-31T19:43:03.127 に答える