0

私はUIActivityIndicatorを持っていますが、iPhone 3Gシミュレータ/デバイスでうまく動作しますが、iPhone 4(Retina)用のSimulator/Deviceでは機能しません。私はそれが黒の背景にあることを言いたいと思います。iPhone 4(網膜)でUIActivityインジケータが機能しない

+2

「作業していない」という意味を明確にしてください。それは間違って表示されている、画面に表示されていないなどスクリーンショットがいいだろう。 –

+0

これは表示されていません。 –

答えて

5

私は同じような問題を抱えていました。インジケータのスタイルをUIActivityIndicatorViewStyleWhiteLargeに変更し、背景にコントラストのある色(私は黒を選んだ)を与えることで解決しました。問題は実際には見えないことです。

+0

実際にはスタイルはUIActivityIndi​​catorViewStyleWhiteLargeに設定され、背景も黒です。 –

+0

実際、私はそれが本当に灰色のスタイルであったことに気付かず、白に変えて、助けてくれました、ありがとう。 –

+0

インジケータをグレー表示に変更すると、助けになりましたが、わかりません。インジケータは白い背景上であっても(それは古くなったアイフォンにあります)、網膜ディスプレイに隠れているのはなぜですか?バックグラウンドカラーを白以外のものに設定しようとしましたが、大きな白はまだ表示されませんでした。 – Lope

2

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

は、あなたがこのようなコードがある場合:UIActivityIndi​​catorは唯一のプログラムの次回の実行ループに表示されますよう

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

UIActivityIndi​​catorは、表示されません。あなたは

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

-(void)doOtherStuff { 
    //do stuff 
} 

によってこれを回避することができます

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

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

0

メインスレッドではないスレッドからスピナーを表示していることがありますか?見ることなく、

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

とにかく:アサートに失敗した

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

場合は、メインスレッドへの呼び出しをディスパッチすることができます:あなたは、メインスレッドにしているかどうかを調べるために、このアサートを試すことができます私たちは皆、ただ推測しているコードです。

+0

スプラッシュスクリーンを作成していますが、バックスレッドでは動作しません。とにかくそれはiPhone 3GとiPadで動作します。 –

+0

コードを教えてください。 – zoul

関連する問題