私はNSManagedObjectを持っています。これには次のような場所に保存されている画像があります/var/mobile/Applications/.../.../uniqueIDforNSMO/Pictures/
NSMOのuniqueIDに基づいてこれらの画像を検索することで、これらの画像をディスクから取り出すのに問題はありません。これらの画像を取得するDataControllerがあり、非常にパフォーマンスが高くなっています。しかし、これらの画像をビューに追加しようとすると問題が発生し、UIがブロックされます。問題は、これらの画像が非常に高解像度であることにあると思います(iPadのカメラロールからの画像です)。
5つの画像を表示するには、UIがブロックされたまま、約3秒かかります。2つの画像を表示するだけでも、UIがブロックされます。バックグラウンドスレッドでそれらを追加する方法は次のとおりです。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
UIImage *image = [self.photos objectAtIndex:index];
dispatch_async(dispatch_get_main_queue(), ^{
cell.imageView.image = image;
});
});
ディスパッチせずにimageView.imageを設定すると、さらに時間がかかります。
問題は、セルのimageViewsが150x150しかないのに、画像が非常に大きいことでしょうか?それとも、最初は画像への参照しかないので、画像の実現が遅いのでしょうか?
誰かがここで何かを提案できますか?配列に返される前に画像のサイズを変更しようとしましたが、役に立ちませんでした。