如何在方法中显示和开始设置UIActivityIndi​​catorView的动画

时间:2010-07-23 09:48:40

标签: iphone uiactivityindicatorview

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

我想要一个UIActivityIndi​​catorView在方法调用show and animate之前处于隐藏状态,所以我写道:

activityIndicator.hidden = NO;
[activityIndicator startAnimating];

在方法的开头

但当然不行。只有方法结束后,UIActivityIndi​​catorView才会生成动画。

这是不可接受的。我必须在函数调用期间显示动画。

任何人都知道怎么做?

NSOperation也许? (任何人都有样品吗?)

1 个答案:

答案 0 :(得分:4)

我假设您正在使用此方法执行一些昂贵的工作,并且在执行该工作时,您希望活动指示器旋转。昂贵的工作应该在主线程上完成(iOS可能会杀死你的应用程序!)。将昂贵的工作放在一个单独的线程上:

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

...当方法(aSelector)完成后,调用:

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

...然后你停止了活动指示器。

永远不要在非主线程中调用任何UI代码!