0

Apple の Reachability.h をデモ アプリに実装しました。問題は、接続の確認中にアプリが停止することに気付いたことです。

そこで、 Activity Indicator (From MBProgressHUD ) を追加しました。しかし、インジケーターはアニメーションしません。アプリケーションでも停止します。

そのため、メインスレッドとは異なる別のスレッド内にアクティビティインジケーターを配置することを考えましたが、それでもアニメーション化されていません.

注:私はあまり経験がありません

更新: また、ネイティブのアクティビティ インジケーターを試してみましたが、うまくいきませんでした。

- (void)anotherThread
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 


    HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
    [self.navigationController.view addSubview:HUD];

    // Set determinate mode
    HUD.mode = MBProgressHUDModeDeterminate;

    HUD.delegate = self;
    HUD.labelText = @"loading";

    // myProgressTask uses the HUD instance to update progress
    [HUD showWhileExecuting:@selector(crazyCounter) onTarget:self withObject:nil animated:YES];

    [pool release];  
}
4

1 に答える 1

1

UI コードはメイン スレッドに保持する必要があります。そのため、アクティビティ インジケーターを別のスレッドに配置する代わりに、GCD (グランド セントラル ディスパッチ) を使用して、チェック接続コードを別のスレッドにスローすることができます。終了したら、アクティビティ インジケーターを削除または非表示にすることができます。

PS。何が何MBProgressHUDをするのかよくわかりませんが、のようなものがあることを確認したいのです[activityIndicator startAnimating]。少なくとも通常のアクティビティ インジケーターの場合は、手動でオンにする必要があります。

于 2012-08-03T22:19:29.727 に答える