0

UIActivityIndicatoriPhone 3G シミュレーター/デバイスではうまく機能していますが、iPhone 4 (Retina) のシミュレーター/デバイスでは機能していません。黒い背景にあることに言及したいと思います。

4

3 に答える 3

5

私はかつて同様の問題を抱えていました。インジケーターのスタイルを に変更UIActivityIndicatorViewStyleWhiteLargeし、背景に対照的な色 (私は黒を選択) を与えることで解決しました。問題は実際にはそれが見えないことです。

于 2011-01-28T12:17:49.267 に答える
2

UIActivityIndi​​cator はすぐには表示されません。

次のようなコードがある場合:

//(pseudo-code)
//Create UIActivityIndicator
//show UIActivityIndicator
//do some other stuff expecting view to show

UIActivityIndi​​cator はプログラムの次の実行ループでのみ表示されるため、UIActivityIndi​​cator は表示されません。

これを回避するには、

{
    //create UIActivityIndicator
    //show UIActivityIndicator
    [self performSelector:@selector(doOtherStuff) withObject:nil afterDelay:0];
}

-(void)doOtherStuff {
    //do stuff 
}

performSelector は、UIActivityIndi​​cator が表示されるときに、次の実行ループで doOtherStuff が実行されることを意味します。

また、表示するビューにサブビューとして追加する必要があります。

于 2011-01-31T08:34:52.943 に答える
0

メインスレッドではないスレッドからスピナーを表示している可能性がありますか? このアサートを試して、メイン スレッドにいるかどうかを調べることができます。

NSAssert([[NSThread currentThread] isMainThread],
    @"This should be run from the main thread.");

アサートが失敗した場合は、呼び出しをメイン スレッドにディスパッチできます。

dispatch_async(dispatch_get_main_queue(), ^{
    // display the spinner
});

とにかく、コードを見なければ、私たちはただ推測するだけです.

于 2011-01-31T08:35:19.217 に答える