Как показать и начать анимацию UIActivityIndicatorView из метода - PullRequest
2 голосов
/ 23 июля 2010

У меня есть метод, который выполняет трудоемкую операцию, скажем что-то вроде десяти последовательных вызовов [[NSString alloc] initWithContentsOfURL: u];

Я хочу UIActivityIndicatorView, который был в скрытом состоянии перед методомвызовите, чтобы показать и оживить, поэтому я пишу:

activityIndicator.hidden = NO;
[activityIndicator startAnimating];

в начале метода

, но, конечно, это не будет работать.UIActivityIndicatorView будет анимироваться только после завершения метода.

Это недопустимо.Я должен показать анимацию во время вызова функции.

Кто-нибудь знает, как это сделать?

Возможно, NSOperation?(у кого-нибудь есть образец?)

1 Ответ

4 голосов
/ 23 июля 2010

Я предполагаю, что вы выполняете дорогостоящую работу с этим методом, и пока эта работа выполняется, вы хотите, чтобы индикатор активности вращался. В главном потоке должна выполняться НЕ (iOS может убить ваше приложение!). Поместите вашу дорогую работу в отдельную ветку с:

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

... и когда метод (aSelector) завершен, вызовите:

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

... и там вы останавливаете индикатор активности.

Никогда не вызывайте код пользовательского интерфейса из неосновного потока!

...