0

こんにちは、PST Collectionview同様のものを使用していUIcollectionview ます。ドキュメントディレクトリからコレクションビューに画像をロードしたいです。最初に同期方法を試しましたが、遅すぎます.

私のviewdidloadに次のコードを追加して、画像をドキュメントディレクトリにダウンロードします

 dispatch_queue_t imageLoadQueue = dispatch_queue_create("com.aaa.nkp",NULL);

    dispatch_async(imageLoadQueue, ^{

        usleep(1000000);
        docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];


        for(int i=0; i <[Images count] ;i++){


            imgURL = [Images objectAtIndex:i];
            [imagePreview addObject:imgURL];
            imgData=[NSData dataWithContentsOfURL:[NSURL URLWithString:imgURL]];


            [imgData writeToFile:[NSString stringWithFormat:@"%@/%@", docPath, [imgURL lastPathComponent]] atomically:YES];


        }

                   [[self collectionView] reloadData];



    });

および collectionview cellforitem() メソッド内

- (PSTCollectionViewCell *)collectionView:(PSTCollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {


    cell = nil; 
    cell = (GMMCollectionViewCell *)[self.collectionView dequeueReusableCellWithReuseIdentifier:@"test" forIndexPath:indexPath];
    cell.tag = indexPath.row;
    docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    BOOL isImageLoaded = YES;
     bookImage = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@", docPath, [[Images objectAtIndex:indexPath.row]         lastPathComponent]]];

    if(bookImage == nil)
        isImageLoaded = NO;

    if(!isImageLoaded){
        [[cell grid_image] setImage:[UIImage imageNamed:@"Placeholder.png"]];

    }
    else{
       [[cell grid_image] setImage:bookImage ];

    }

    return cell;
}
4

2 に答える 2