Открытие UIActivityIndicatorView после UIActionSheet - PullRequest
0 голосов
/ 08 февраля 2010

У меня есть некоторые деструктивные операции, которые требуют подтверждения, и я использую UIActionSheet.

Внутри clickedButtonAtIndex я запускаю некоторые длительные операции, для которых требуется UIActivityIndicatorView.

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

Могу ли я принудительно закрыть UIActionSheet, даже если пользователь нажал несколько кнопок и его делегат clickedButtonAtIndex был запущен?

В псевдокоде:

  • Пользователь хочет выполнить деструктивную операцию
  • Запрос подтверждения с UIActionSheet
  • Пользователь говорит ДА
  • Делегат clickedButtonAtIndex запускает и вызывает длительную операцию
  • Эта операция, первое, что делает, это открывает UIActivityIndicatorView, но поскольку UIActionSheet активен, я не могу видеть до конца ...

спасибо,

г. * * Тысячу двадцать-пять

1 Ответ

1 голос
/ 08 февраля 2010

Вы можете позвонить

CFRunLoopRunInMode(UITrackingRunLoopMode, 0.1, true);

, чтобы позволить элементам интерфейса обновиться до того, как начнутся длительные вычисления Кроме того, вы можете использовать

-(void)doLengthyOperation {
   show_activity_indicator_view();
   [self performSelector:@selector(doRealLengthyOperation) withObject:nil afterDelay:0.1];
}
-(void)doRealLengthyOperation {
   // do the real lengthy operations.
}
...