2016-08-04 94 views
0

Ich erstellte in Storyboard UITableView mit Prototyp Zelle, TableViewController und UITableViewCell. Jetzt möchte ich alle Bilder aus der Telefongalerie auswählen und eine oder mehrere in der Datenbank speichern. Aber in diesem Moment muss ich das Hinzufügen von Bildern zur Tabellenansicht implementieren. Ich bin Anfänger in iOS. Kann mir jemand sagen, wie das geht? Gib mir einen Link oder Code? Vielen Dank für den FortschrittWie Bilder zu UITableView von Telefon Galerie hinzufügen

+0

versuchen diese http://stackoverflow.com/questions/12633843/get-all -of-the-images-from-aphone-photolibrary-in-a-array-using-acestslibr – sanjeet

+0

kenzolek meine antwort überprüfen – user3182143

+0

Ist meine Antwort hilfreich für Sie? – user3182143

Antwort

2

Sie können ALAssetsLibrary in AssetsLibrary framework verwenden, um alle Bilder aus der Telefongalerie zu holen. Speichern Sie alle Bilder in einem Array.

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 

void (^assetEnumerator)(ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) { 

    if(result != nil) { 

     if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) { 

      NSURL *url= (NSURL*) [[result defaultRepresentation] url]; 
      [library assetForURL:url 
        resultBlock:^(ALAsset *asset) { 
         UIImage *img = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]]; 
         [imgArray addbject:img]; 
        } 
        failureBlock:^(NSError *error){ NSLog(@"operation failed"); } ]; 
     } 
    } 
}; 

Dann können Sie dieses Array zum Speichern in DB oder zum Anzeigen in Tabellenansicht verwenden. Für die Verwendung in TableView müssen Sie in Ihrer Prototyp-Zelle UIImageView hinzufügen und dann die Bilder aus dem Array auf die Zelle entsprechend einstellen. Ihre Delegiertenmethoden für Tabellenansichten sind wie folgt.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return [imgArray count]; 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    CellId = @"ImageCell"; 
    CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellId]; 
    if (cell == nil) { 
     cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellId]; 
    } 
    UIImage *img = [imgArray objectAtIndex:indexPath.row]; 
    cell.imgView.image = img; 
    return cell; 
} 
1

Wenn Sie das Bild aus der Galerie auswählen möchten und teilen Sie Ihre Tableview, können Sie benutzerdefinierte Image in Tableview oder CustomCell Imageview verwenden

Zuerst Sie das Bild aus der Galerie auswählen müssen und es zu Array speichern

Davor zuzuteilen und initialisieren das Array in viewDidLoad Methode

ViewController.m

#import "ViewController.h" 

@interface ViewController() 
{ 
    NSMutableArray *arrayImage; 
} 

@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
     [super viewDidLoad]; 
     arrayImage = [[NSMutableArray alloc]init]; 
} 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    UIImage *image=[info objectForKey:@"UIImagePickerControllerOriginalImage"]; 
    imageView.image=image; 
    [arrayImage addObject:image]; 
    picker.delegate =self; 
    [picker dismissViewControllerAnimated:YES completion:nil]; 
} 

Dann in Tableview

Wenn Sie

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"cell"]; 
    if(cell==nil) 
    { 
    NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"CustomTableViewCell" owner:self options:nil]; 
    cell = nib[0]; 
    } 
cell.galleryImageView.image = [arrayImage objectAtIndex:indexPath.row]; 
return cell; 
} 

CustomCell Wenn Sie die Standardtabellenansicht Zelle verwenden

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *strCell = @"cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:strCell]; 
    if (cell == nil) 
    { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:strCell]; 
    } 
    cell.imageView.image = [arrayImage objectAtIndex:indexPath.row]; 
    return cell; 
}