2

我有一个执行耗时操作的方法,比如连续十次调用 [[NSString alloc] initWithContentsOfURL:u];

我想要一个在显示和动画方法调用之前处于隐藏状态的 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 回答