画面の1つに表示しているドキュメントフォルダに画像があります。ウェブから画像を読み込む場合と同様に、画像を読み込んで画面に表示するのに時間がかかります。私の知る限り、非同期imageViewは後者の場合に機能します。私は間違っているかもしれません。
とにかく、ドキュメントフォルダの画像を非同期で表示できますか?
画面の1つに表示しているドキュメントフォルダに画像があります。ウェブから画像を読み込む場合と同様に、画像を読み込んで画面に表示するのに時間がかかります。私の知る限り、非同期imageViewは後者の場合に機能します。私は間違っているかもしれません。
とにかく、ドキュメントフォルダの画像を非同期で表示できますか?
SDWebImageを見てください。これはUIImageViewサブクラスであり、URLから非同期で、便利なキャッシュを使用して画像を表示できます。インターネットのURLで動作するように設計されていますが、内部のURLでも動作すると思います。
次のように、画像の読み込みをバックグラウンドスレッドに入れます
-(void)backgroundLoadImageFromPath:(NSString*)path {
UIImage *newImage = [UIImage imageWithContentsOfFile:path];
[myImageView performSelectorOnMainThread:@selector(setImage:) withObject:newImage waitUntilDone:YES];
}
次に、画像を設定する必要がある場所でそのスレッドを呼び出します
[self performSelectorInBackground:@selector(backgroundLoadImageFromPath:) withObject:path];
backgroundLoadImageFromPathでは、setImage:セレクターが終了するまで待つ必要があることに注意してください。そうしないと、setImage:メソッドが画像を保持する前に、バックグラウンドスレッドの自動解放プールが画像の割り当てを解除する可能性があります。