0

だから、私はウェブからの画像を表示するテーブルビューを持つアプリケーションを持っています(どこからでも構いません)

ビューが読み込まれるとダウンロードが開始されますが、キャッシュを構築して、キャッシュにない画像のみをダウンロードしたいと考えています。

ダウンロードしてディスクに保存するチュートリアルを見てきましたが、この検証を実装するにはどうすればよいですか? ローカルでない場合のみダウンロードし、ローカルの場合はローカルを表示します。

この画像を動的に取得するにはどうすればよいですか?

メソッドをほとんど使用するimageNamedように、テーブルビューを構築する必要がある場合は呼び出すだけ[MyClass getImageWithName:(name)で、存在する場合は画像を返し、ダウンロードキューに入れていない場合は画像を返します

明確にするために、私の質問は次のとおりです。「ドキュメント フォルダから 1 つの画像を簡単に取得するにはどうすればよいですか?」

4

2 に答える 2

1

次のことを行います。

- (NSString *)ImagesDirectoryPath
{
NSFileManager *fileManger = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
basePath = [basePath stringByAppendingFormat:@"/Images"];
NSError *error;
 if(![fileManger fileExistsAtPath:basePath])
 {
    [fileManger createDirectoryAtPath:basePath withIntermediateDirectories:NO attributes:nil error:&error];
 }
return basePath;
}

このメソッドは、ドキュメント ディレクトリの下のイメージ パスを返します。

画像の名前が表示されたので、画像ディレクトリが存在するかどうかを確認します。終了した場合、その img を使用するか、img をダウンロードして保存します // このコードは cellForRowAtIndexPath になります

 NSString *strImgPath = [self ImagesDirectoryPath];
strImgPath = [strImgPath stringByAppendingFormat:[NSString stringWithFormat:@"/%@.png",imgName]];
 NSFileManager *fileManger = [NSFileManager defaultManager];
 if(![fileManger fileExistsAtPath:strImgPath]) //Check wether image exits at Image Folder in Doc Dir
 {//file not exists
    UIImage *imgForCell =  [MyClass getImageWithName:imgName];

   if(imgForCell)
   {
    NSData *dataImg = UIImagePNGRepresentation(imgForCell);
    if(dataImg)
    {
        [dataImg writeToFile:strImgPath atomically:YES];
    }
   }
    imgView.image=imgForCell; //Set Image in ImageView
 }
 else
 {//file exists
   NSData *imgData = [NSData dataWithContentsOfFile:strImgPath];
UIImage*imgFound = [UIImage imageWithData:imgData]; 
  imgView.image=imgFound; //Set Image in ImageView
 }
于 2012-05-28T06:09:18.923 に答える
-1

画像を保存/ロードする関数を作成できます。

ドキュメント フォルダーから画像を保存/ロードする方法を示す例を次に示します 。 -image-from-documents-directory-coding/

ただし、ライブラリ/キャッシュに画像を保存することをお勧めします

于 2012-05-28T04:43:56.073 に答える