5 Stimmen

Anzeige von Fotos aus dem NSDocumentDirectory

Ich entwickle diese Anwendung auf einem iPad.

Diese Codes für eine Schaltfläche "Durchsuchen" ermöglichen es dem Benutzer, die Fotos in der Galerie des iPad anzusehen.

- (IBAction) BrowsePhoto:(id)sender
{
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.delegate = self;
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:imagePickerController];
[popover setPopoverContentSize:CGSizeMake(320,320)];
[popover presentPopoverFromRect:CGRectMake(200,200,-100,-100) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
self.popoverController = popover;
[imagePickerController  release];
}

Wenn ein Foto ausgewählt wird, wird es mit NSDocumentDirectory in der Anwendung gespeichert.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)selectedImage editingInfo:(NSDictionary *)editingInfo 
{
[self.popoverController dismissPopoverAnimated:YES];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:@"SavedImage.png"];
UIImage *image = imageView.image;
NSData *imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:savedImagePath atomically:NO];
}

Jetzt muss ich auf dem ersten Bildschirm eine Schaltfläche "Anzeigen" einfügen. Wenn man auf die Schaltfläche tippt, wird eine neue Ansicht (modaler View-Controller) angezeigt und zeigt alle Fotos in Miniaturbildern/Tabellenansicht aus dem NSDocumentDirectory an.

Wenn ein Foto ausgewählt wird, wird es aus dem NSDocumentDirectory gelöscht.

Wie kann ich das tun?

2voto

Dip Dhingani Punkte 2479

Versuchen Sie zunächst, die Bilder im Ordner "Dokumente" mit einer Namenskonvention zu speichern, z. B. mit einer Zählervariablen, und geben Sie Ihren Bildern entsprechende Namen. Zum Beispiel so:

NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.png", counter]];

Wenn Sie alle Bilder im Ordner "Dokumente" gespeichert haben und sie abrufen möchten, können Sie sie mit diesem Code abrufen:

 -(NSMutableArray *)GetImage:(NSMutableArray *)arrayImgNames
 {
      NSMutableArray *tempArray;
            for(int i=0;i<[arrayImgNames count]; i++)
     {
        NSArray *paths1 = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths1 objectAtIndex:0];
        NSString *filePath = [documentsDirectory stringByAppendingPathComponent: [arrayImgNames objectAtIndex:i]];
        [tempArray addObject:[[UIImage alloc] initWithContentsOfFile:filePath]];
        return tempArray;
     }
 }

Wenn Sie alle Bilder haben, können Sie sie als Miniaturbilder anzeigen lassen und dann, wenn Sie ein Bild löschen möchten, diese Methode verwenden:

 -(int)removeImage:(NSString*)FileName1
 {
     NSFileManager *filemanager=[NSFileManager defaultManager]; 
     NSArray *path1=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);  
     NSString *documentdirectory = [path1 objectAtIndex:0]; 
     NSString *filepath=[documentdirectory  stringByAppendingPathComponent:FileName1];
     if([filemanager fileExistsAtPath:filepath]==TRUE)
     {
        [filemanager removeItemAtPath:filepath error:nil];
     }  
     return 0;
 }

Ich hoffe, dies hilft Ihnen.

Um die Tabelle mit einem Bild zu füllen, benötigen Sie eine benutzerdefinierte Zelle. Sie können ein Tutorial von Apple namens AdvancedTableViewCells . Es wird Ihnen zeigen, wie Sie Ihre Tabelle mit Bildern füllen können. Sie haben ein Haupt-Thumbnail in jeder Zeile. Sie müssen es anpassen und 3 oder 4 Thumbnails nach Ihren Wünschen einfügen. Ansonsten entfernen Sie alles aus dieser benutzerdefinierten Zelle.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X