我有一个执行耗时操作的方法,比如十次连续调用 [[NSString alloc] initWithContentsOfURL:u];
我想要一个UIActivityIndicatorView在方法调用show and animate之前处于隐藏状态,所以我写道:
activityIndicator.hidden = NO;
[activityIndicator startAnimating];
在方法的开头
但当然不行。只有方法结束后,UIActivityIndicatorView才会生成动画。
这是不可接受的。我必须在函数调用期间显示动画。
任何人都知道怎么做?
NSOperation也许? (任何人都有样品吗?)
答案 0 :(得分:4)
我假设您正在使用此方法执行一些昂贵的工作,并且在执行该工作时,您希望活动指示器旋转。昂贵的工作应该不在主线程上完成(iOS可能会杀死你的应用程序!)。将昂贵的工作放在一个单独的线程上:
- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg
...当方法(aSelector)完成后,调用:
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
...然后你停止了活动指示器。
永远不要在非主线程中调用任何UI代码!