メインスレッドをブロックしつつ、ビジーアイコンを表示する
APIの都合上、どうしてもメインスレッドでないと行えない処理があるのですが、その処理に4秒程度の時間がかかります。
なので、アニメーション付きの UIActivityIndicatorView を表示したいのですが、メインスレッドがブロックされているため、おそらくアニメーションされないかと思います。(表示処理をしてすぐに思いAPIをコールするので、処理が完了するまで描画処理が行われず、アニメーションされない状態での表示もむりな気がします。)
なにか、特殊なもので、アプリのメインスレッドをブロックしていてもビジー状態をスクリーン(ステータスバーではない)に表示できる方法などはありますか?
ちなみに、行いたい重い処理は以下ですが、等倍ではなく、高解像度で処理しないといけないので他のもので代用できないかとおもいます。(ただ単にRetinaようではなく、印刷用にも)
UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, scale*2/*Retina用に2倍のサイズで作成*/);
view.layer.renderInContext(UIGraphicsGetCurrentContext()!);
let image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
メインスレッドをブロックしていてもアニメーションするのが
あるとすれば、OSの機能になるかと思いますが。。。