バックグラウンドスレッドでNSDataからUIImageをフェッチするためのコードを実行するテーブルビューがあり、フォアグラウンドでそれが呼び出されます[button setImage:image forState:UIControlStateNormal];
。
問題は、UIが完了するまで、その行でUIが一瞬フリーズすることです。これは、UIが画像として設定されている間、UIがフリーズすることを意味します。ユーザーがスクロールしているため、これは非常に目立ち、ぎくしゃくします。UIがこのようにフリーズするのを防ぐ方法はありますか?
dispatch_queue_t cellSetupQueue = dispatch_queue_create("Setup", NULL);
dispatch_async(cellSetupQueue, ^{
UIImage *image = [self.mediaDelegate largeThumbnailForMediaAtIndex:indexPath.row];
dispatch_async(dispatch_get_main_queue(), ^{
[self.thumbnailButton setImage:image forState:UIControlStateNormal];
});
});
dispatch_release(cellSetupQueue);