Carica l’immagine in una tabellaVisualizza da URL iphone sdk

Ho tableView e ho bisogno di caricare l’immagine dall’URL. Ho una matrice che contiene gli URL delle immagini e quando la pagina viene caricata ho bisogno di caricare tutte le immagini in tableview. Nota che, non da un singolo URL, hai un array con URL diversi. Come posso implementarlo? Per favore aiuto

Grazie.

Puoi utilizzare GCD per caricare immagini nel thread in background, in questo modo:

//get a dispatch queue dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); //this will start the image loading in bg dispatch_async(concurrentQueue, ^{ NSData *image = [[NSData alloc] initWithContentsOfURL:imageURL]; //this will set the image when loading is finished dispatch_async(dispatch_get_main_queue(), ^{ imageView.image = [UIImage imageWithData:image]; }); }); 

Ciao. Ma probabilmente è necessario aggiungere un dispatch_release (concurrentQueue); per essere sicuri che non ci siano perdite. – Franck, 25 agosto alle 19:43

È ansible utilizzare il caricamento lento quando si desidera scaricare immagini da internet

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { //All you reusable cell implementation here. //Since your Images sizes differ. Keep a custom Imageview if(![imagesForCategories containsObject:indexPath]) { customImageView.image = [UIImage imageNamed:@"default-image.png"]; NSMutableArray *arr = [[NSArray alloc] initWithObjects:[imageUrlArray objectAtIndex:indexPath.row],indexPath, nil]; [self performSelectorInBackground:@selector(loadImageInBackground:) withObject:arr]; [arr release]; } return cell; } - (void) loadImageInBackground:(NSArray *)urlAndTagReference { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSURL *imgUrl=[[NSURL alloc] initWithString:[urlAndTagReference objectAtIndex:0]]; NSData *imgData = [NSData dataWithContentsOfURL:imgUrl]; UIImage *img = [UIImage imageWithData:imgData]; [imgUrl release]; NSMutableArray *arr = [[NSMutableArray alloc ] initWithObjects:img,[urlAndTagReference objectAtIndex:1], nil ]; [self performSelectorOnMainThread:@selector(assignImageToImageView:) withObject:arr waitUntilDone:YES]; [arr release]; [pool release]; } - (void) assignImageToImageView:(NSMutableArray *)imgAndTagReference { [imagesForCategories addObject:[imgAndTagReference objectAtIndex:1]]; UITableViewCell *cell = [celebCategoryTableView cellForRowAtIndexPath:[imgAndTagReference objectAtIndex:1]]; UIImageView *profilePic = (UIImageView *)[cell.contentView viewWithTag:20]; profilePic.image = [imgAndTagReference objectAtIndex:0]; } 

È ansible utilizzare SDWebImage che consente un caricamento molto facile e rapido delle immagini in UITableView.
https://github.com/rs/SDWebImage

Prova questo codice, imagearray contiene url di immagine

 -(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSData* imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString: [imagearray objectAtIndex:row]]]; UIImage* image = [[UIImage alloc] initWithData:imageData]; cell.imageView.image =image; return cell; } 

È necessario creare la cella personalizzata per il caricamento lento. Ciò ti consentirà di scaricare le immagini correttamente e senza congelamento. Ecco un bell’esempio come fare questo: caricamento dell’immagine Asynch

Con afnetworki, è troppo facile.

 //afnetworking #import "UIImageView+AFNetworking.h" [cell.iboImageView setImageWithURL:[NSURL URLWithString:server.imagen] placeholderImage:[UIImage imageNamed:@"qhacer_logo.png"]];