0

テーブル ビューを使用しており、モーダルの表示に時間がかかる (2.5 秒) セル選択に対して MBProgressHud を表示しようとしています。

MBProgressHud を開始する方法は次のとおりです。

- (void)showProgressHud
{
    dispatch_async(dispatch_get_main_queue(), ^{
        [MBProgressHUD showHUDAddedTo:self.streamTableView animated:YES];
    });
}

- (void)hideProgressHud
{
    dispatch_async(dispatch_get_main_queue(), ^{
        [MBProgressHUD hideHUDForView:self.streamTableView animated:YES];
    });
}

ネットワーク アクティビティ インジケータが回転していない場合にのみ進行状況 HUD が表示されることに気付きました。

テーブルがリロードされると、ネットワークがアクティブになります (Restkit 0.20.0 を使用)。開いている接続があるときにアクティビティ インジケーターを開始するように AFNetworking を構成しました。

アクティビティ インジケーターを無効にしても問題が解決しないことを確認しました。

[[AFNetworkActivityIndicatorManager sharedManager] setEnabled:NO];

どちらの方法でもオプションを有効にできるようにしたいと思います。助言がありますか?

4

2 に答える 2

0

メイン スレッドでネットワーク コードを実行しているように見えますが、それが完了するまで UI の更新がブロックされます。セルの選択/リロードに続いてネットワーク接続を開始する方法を確認し、バックグラウンド スレッドのキューに入れられていることを確認します。アクティビティ インジケーターは、アプリ コードとは完全に分離されています (実際、別のスレッドで実行されるため、機能し、アプリ UI の影響を受けたり、影響を受けたりすることはありません)。

于 2013-04-26T23:15:44.050 に答える