インターネットからのデータを解析しているときに、スピンアクティビティインジケータ(UIActivityIndicatorView)をアプリケーションに追加しようとしています。 IBのUIActivityIndicatorViewにIBOutlet(スピナー)を接続しました。当初は次のように設定しました:アクティビティインジケータが回転しない
-
(void) function {
self.spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhite];
self.spinner.hidesWhenStopped = YES;
[spinner startAnimating];
//parse data from internet
[spinner stopAnimating];}
しかし、スピナーは回転しません。私は、それはすべてが同じスレッド上にあることと関係があることを読んだ。だから私はこれを試しました:
- (void) newFunction {
self.spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhite];
self.spinner.hidesWhenStopped = YES;
[spinner startAnimating];
[NSThread detachNewThreadSelector: @selector(function) toTarget: self withObject: nil];
[spinner stopAnimating];}
まだ運がありません。何か案は?ありがとう。
+1正解の場合、彼は何も見ていない理由は、彼がメインスレッドで開始した直後にアニメーションを停止するためです。 'performSelectorOnMainThread:withObject:waitUntilDone:'を実行する必要がある理由は、すべてのUI関連アクティビティがメインスレッドで発生するためですが、スピンナの開始/停止は他のスレッド内から発生する必要があるからです。 – jer