2013-04-18 2 views
0

Допустим, я что-то вроде этого:Разрешить обновления пользовательского интерфейса IOS

[MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
[self methodThatTakesLotsOfTime]; 
[MBProgressHUD hideHUDForView:self.view animated:YES]; 

Это не позволит достаточно времени для HUD, чтобы оживить в и шоу. Использование sleep(100) или NSTimer только добавит проблемы. Я также не могу запустить метод в главной очереди. Не говоря уже о том, что dispatch_get_current_queue() устарел для iOS 6.0+. Я должен быть что-то отсутствует большая

+0

В чем проблема? Это то, что вы хотите * предотвратить * взаимодействие пользователя во время этого? Или вы не хотите запускать «метод» до окончания анимации? Или что? – matt

+0

Я хочу, чтобы метод запускался после открытия HUD (т. Е. Анимации). – vqdave

+0

Итак, проблема здесь не в том, что мы знаем об этом MBProgressHUD. Это зависит от вас, чтобы дать вам возможность подождать, пока анимация не будет выполнена. – matt

ответ

0

Вы можете попробовать использовать обработчик завершения транзакции:

[MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
[CATransaction setCompletionBlock: ^{ 
    [self methodThatTakesLotsOfTime]; 
}]; 

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

Смежные вопросы