2

時間のかかる操作を行うメソッドがあります。たとえば、[[NSString alloc] initWithContentsOfURL:u]を10回連続して呼び出すようなものです。

メソッド呼び出しの前に非表示の状態にあったUIActivityIndi​​catorViewを表示してアニメーション化する必要があるため、次のように記述します。

activityIndicator.hidden = NO;
[activityIndicator startAnimating];

メソッドの開始時に

もちろん、それは機能しません。UIActivityIndi​​catorViewは、メソッドが終了したときにのみアニメーション化されます。

これは受け入れられません。関数呼び出し中にアニメーションを表示する必要があります。

誰もがそれを行う方法を知っていますか?

NSOperation多分?(誰かがそのサンプルを持っていますか?)

4

1 に答える 1

4

この方法で高価な作業を行っていて、その作業が実行されている間、アクティビティインジケーターを回転させたいと思います。メインスレッドで高価な作業を行うべきではありません(iOSはアプリを強制終了する可能性があります!)。高価な作業を次のように別のスレッドに配置します。

- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg

...そしてメソッド(aSelector)が完了したら、次を呼び出します。

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait 

...そしてそこでアクティビティインジケーターを停止します。

非メインスレッド内からUIコードを呼び出さないでください。

于 2010-07-23T09:55:32.410 に答える