iPadアプリでは、より大きなUIViewの中にたくさんのUIImageViewsがあります。各UIImageViewには、別のスレッドで生成されたサムネイルが含まれています(アプリケーションをフリーズしないように)。サムネイルが正常に生成された後、私はsetNeedsDisplay
をメインスレッドで呼び出しますが、親指が利用可能になるとUIImageViewsは更新されません(ログに表示されます)。約5秒かかります。一度。UIViewの更新に時間がかかりすぎる
ここでサムネイルが別のスレッドで作成されたとき、私がやっているものです:
[self performSelectorOnMainThread:@selector(setNeedsDisplay)
withObject:nil
waitUntilDone:NO];
任意のアイデアは?
いいえ、私のメインスレッドは、ユーザーがビューとのやり取り(ドラッグ、アレンジなど)を可能にします。だからそれは失速しない。これは、サムネイルをロードするために別のスレッドを使用しているためUIがぎこちないように見える理由です。私はスレッド化のためにNSOperationQueueを使用しています。スレッドはスレッドが約200ミリ秒かけて仕事を終えていることを示しています。サムネイルは約5秒後にのみ表示されます。 –
メインスレッドで 'setNeedsDisplay'を呼び出していると言われますが、バックグラウンドスレッドからUIKit *とやりとりしていますか? – Jim
いいえ、まったくありません。私はちょうどソースイメージを読んで、それらのサイズを変更し、UIIImageViewでそれらを設定する、ああ待って、私はUIImageViewでそれらを設定することはできませんできますか?おっとっと。それは愚かな間違いでした。恥ずかしいです。 Jimに感謝します。問題は修正されました。 –