私はUIView *loadingView
には単に黒いBGとUIActivityIndicator
が含まれています。私は、私の見解にこれを追加し、数秒のためのスレッドをスリープ状態にしたい:寝る前にUIViewを追加する
[self.window addSubview:loadingView];
loadingView.hidden=NO;
sleep(2);
どうやら、これは、ビュー・スレッドがスリープを追加するのに十分な時間ではありませんが、ビューが追加されていません2秒後にのみ表示されます。だから私はこのようなものを試しました:
-(void)sleep
{
sleep(2);
}
[self.window addSubview:loadingView];
loadingView.hidden=NO;
[self performSelector:@selector(sleep) withObject:nil afterDelay:0.01];
これは、希望の結果であるスリープ前のビューを表示します。しかし、これらの3行の下には、スリープ後まで実行したくないコード行がいくつかあり、0.01秒以内にこれらの行がすべて実行されます。
以下の行をsomeFunctionに置き、 '[self performSelector:@selector(someFunction)withObject:nil afterDelay:2.0];'を使用してスリープ関数を削除してみましょう。 – Lunayo
は、なぜあなたはアプリが応答しないことと何もしないの3秒の期間を課すことをしたいですか? –
私は別のスレッドでいくつかの読み込みを行っているので、sleep(2)以下のコード行を2秒後まで呼び出さないようにしています。 – Snowman