私のUIActivityIndicatorViewは、私のアプリケーションのシミュレータや他の3.0デバイスで正常に動作していました。しかし、私はそれが新しいiPhone 4で回転(または表示)されていないことを知った。基本的には、ボタンがクリックされたときにアクティビティインジケータを表示し、ボタンクリックイベントが完了したら非表示にする必要がある。私は以下のアプローチを使用していました。このlinkからUIActivityIndicatorの表示に関するもう1つの質問
[NSThread detachNewThreadSelector: @selector(spinBegin) toTarget:self withObject:nil];
。前述のように、それは4. *を除いてすべてのアクティビティインジケータを正しく回転させます。これを回避するために、私はまた、(developer.apple.comから)のような別のアプローチの何かを追っ
` (IBAction)syncOnThreadAction:(ID)、送信者
{
[self willStartJob];
[self performSelectorInBackground:
@selector(inThreadStartDoJob:)
withObject:theJobToDo
];
}
(ボイド)inThreadStartDoJob:(ID)theJobToDo
{
NSAutoreleasePool * pool;
NSString * status;
pool = [[NSAutoreleasePool alloc] init];
assert(pool != nil);
status = [... do long running job specified by theJobToDo ...]
[self performSelectorOnMainThread:
@selector(didStopJobWithStatus:)
withObject:status
waitUntilDone:NO
];
[pool drain];
}
`
これに伴う問題は、トップバーでの活動の指標に建てられ、acitivityVIewIndicatorは(少なくともシミュレータ上で)正しく回転するが、それが停止した後に表示される、ということでした(ここでは電池%などが表示されます)がまだ回転しています。
私は目的C.に新しいです。私は完全に私のアプリを終了しましたが、このばかげたことです。私は別のスレッドを開始せずにUIActivityViewを表示する方法がないことを認識しています。そして最後に、暴言を言うだけで、どうしてそんなに複雑にしなければならないのか分かりません。私は彼らがこの問題を抱えていることを知っていたので、自分のソリューションを派生させるのではなく、誰もが使えるサンプルコードを提供してみませんか?
最後に、誰でも私に指示またはサンプルコードを提供してください。とても感謝しております。私は今、数時間を探していて、実際に何かを見つけていません!
あなたが言及しているコードの最後の行、 [activityIndicator performSelectorOnMainThread:@selector(stopAnimating)withObject:nilをwaitUntilDone:YES]; あなたは[SELF performSelectorOnMainThread:@selector(stopAnimating)withObject:nil waitUntilDone:YES]を意味しましたか?もしそうなら、これはまさに私がやっていることで、トップバーのアクティビティインジケータを除いて動作するようです。私はそれがネットワーク活動に基づいていることを知らなかった、私は見てみましょう。 –
私はこの回答に同意します。私は[UIApplication sharedApplication] .networkActivityIndicatorVisible = NO;を実行しました。 にはネットワークインジケータが表示されません。私はネットワーク活動を持っていますが、私がstopメソッドを呼び出すまでにはすべて完了しています。何が起こっているのかは分かりません。 –