2012-03-01 8 views
0

私はUIScrollViewを取得し、対応するpdfページの同等のサムネイルが表示されるUIViewsを追加/削除しました。NSOperationを作成してすぐにNSOperationQueueに追加します。 UIViewがスクロールビューに追加され、background.AtでPDFサムネイルが生成されます。スクロールビューに3つのUIビューが表示されます。小さなレンダリングのために小さなPDFファイルがうまく動作しますが、問題は大規模/複雑なPDFページは、ユーザーが特定のページでナビゲーションを終了すると、私の実装に従って3つのサムネイルを生成するために3 NSOperationsが同時にバックグラウンドで動作します(前のページ、現在のページ、 )、全体として、現在のpを表示するのに長い時間がかかる私はすべてのライブNSOperationオブジェクトを反復しようとし、現在のページのサムネイルをscrollViewDidEndDecelerating:メソッドでレンダリングすると仮定したものに高い優先度を設定しようとしましたが、動作しておらず、結果のエフェクトもまだ同じです。ありがとうございました。どのようにipadの現在のPDFページを描画しているNSOperationに高い優先度を設定するには?

答えて

0

NSOperationQueueをバックグラウンドで動作させるように設定した場合(すなわち、[NSOperationQueue mainQueue]を呼び出さなかった場合)、タスクは非同期で完了する必要がありますが、後でメインスレッドで実行されているビューは更新されません。それはアクションが起こるのスレッドに関連していないとして重要ではありませんソリューションを追加することです:。

-(void)main { 

    // ** load PDF image ** 

    [self performSelectorOnMainThread:@selector(insertImageLoaded:) 
          withObject:img 
         waitUntilDone:YES]; 

} 

基本的に、何を覚えておく必要がありますすることはiOSのは、はるかに小さなスレッドプールを作成することですGCDを使用しているときに表示されるNSOperations。

+0

ありがとうございます! – Hariprasad

関連する問題