0

私がこのようなことをするとしましょう:

[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 以降では非推奨です。何か大きなものを見逃しているに違いない

4

1 に答える 1

0

トランザクション完了ハンドラーを使用して試すことができます。

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

しかし、実際にはそれは一時しのぎにすぎません。完了ブロックでアニメーション化する方法を提供するのは、使用しているコードの作成者次第です。

于 2013-04-18T20:47:21.777 に答える