1

ユーザーが印刷する画像を生成するクラスがあります。これらのイメージは QuartzCore (およびいくつかの UIKit 要素) を使用して作成され、メイン スレッドで実行する必要があります。

画像の生成中にユーザーに表示されるビューには、進行状況バーがあります。このビューは、印刷を行うクラスのデリゲートであり、プログレス バーを更新するためにビューのプリンターによってメソッドが呼び出されます。問題は、プリンターがメインスレッドを詰まらせているため、プリンターが終了するまでプログレスバーが視覚的に更新されないことです。UI の更新はすべてメイン スレッドで行う必要があるため、プログレス バーをメイン スレッドから移動できません。

私はマルチスレッドにかなり慣れていません。他に選択肢はありますか、それともアクティビティ インジケーターなどを使用する必要がありますか?

4

2 に答える 2

1

イメージの作成がバックグラウンド スレッドで行われるようにコードを更新します。これは安全なはずです。

その後、メイン スレッドを呼び出して進行状況バーを更新できます。

于 2013-03-08T00:21:41.847 に答える