Problema al usar AsyncImageView en icarousel en iOS

He desarrollado una aplicación que utiliza Asyncimageview e iCarousel. Pero mis problemas son que cuando bash cargar las imágenes desde urls solo se carga el indicador de actividad en cada vista de mi iCarousel y no se cargan imágenes. Aquí está mi código

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(AsyncImageView *)view { if (view == nil  { AsyncImageView * view = [[[AsyncImageView alloc]initWithFrame:CGRectMake(0, 0, 300, 280)] autorelease]; view.image=[UIImage imageNamed:@"infobg.png"]; view.imageURL=[imageURLs objectAtIndex:index]; } return view; } 

Siga estos pasos quizás debido a los siguientes motivos, puede enfrentar este problema

– Verifique si la matriz de ur imageURLs tiene objects en iCarousel, pero no … Si es nula, puede tener este tipo de problema …

– Hacer asignación de matriz y agregar objects en

  - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 

método, porque si agrega objects en su matriz bajo viewDidLoad, no funcionará porque la vista de carrusel se carga primero antes del método viewDidLoad ..

– Si su elemento de matriz está presente incluso después de estos pasos, siga este código.

 - (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(AsyncImageView *)view { view = [[[AsyncImageView alloc]initWithFrame:CGRectMake(0, 0, 300, 280)] autorelease]; view.image=[UIImage imageNamed:@"infobg.png"]; view.imageURL=[imageURLs objectAtIndex:index]; //NSLog(@"%@",imageURLs)//check imageURLs having object if(view ==nil) { [[AsyncImageLoader shanetworkingLoader]cancelLoadingImagesForTarget:view]; } return view; } 

Esto te ayudará..

Las celdas deben ser reutilizadas.

 - (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(AsyncImageView *)view { if (view == nil) { view = [[[AsyncImageView alloc]initWithFrame:CGRectMake(0, 0, 300, 280)] autorelease]; } // dont forget stop previous loading -cancelLoadingURL:target: view.image=[UIImage imageNamed:@"infobg.png"]; view.imageURL=[imageURLs objectAtIndex:index]; return view; } 

también deberías detenerte previamente

 - (void)viewDidLoad { [super viewDidLoad]; User_Id=@"abcd@gmail.com"; NSString *Post=[NSString stringWithFormat:@"email=%@",User_Id]; NSData *PostData = [Post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO]; NSString *PostLengh=[NSString stringWithFormat:@"%d",[Post length]]; NSURL *Url=[NSURL URLWithString:[NSString stringWithFormat:@"%@fetch_all_user_updates.php",ServerPath]]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:Url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; [request setHTTPMethod:@"POST"]; [request setValue:PostLengh forHTTPHeaderField:@"Content-Lenght"]; [request setHTTPBody:PostData]; NSData *ReturnData =[NSURLConnection sendSynchronousRequest:request returningResponse:Nil error:Nil]; NSString *Response = [[NSString alloc] initWithData:ReturnData encoding:NSUTF8StringEncoding]; Response = [Response stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; NSMutableArray *JSON_Array=[Response JSONValue]; // NSlog(@"%@", JSON_Array); // textfield.text=[[JSON_Array valueforKey:@"email"]objectAtIndex:0]; // load images from database at local host /* NSLog(@"%@",[NSString stringWithFormat:@"%@/Images/%@",serverScriptpath,[[jsonarray valueForKey:@"image"]objectAtIndex:0]]); NSURL *img_url=[NSURL URLWithString:[NSString stringWithFormat:@"%@/Images/%@", serverScriptpath,[[jsonarray valueForKey:@"image"]objectAtIndex:0]]]; NSURLRequest *request1=[NSURLRequest requestWithURL:img_url]; [Img_profilepic setImageWithURLRequest:request1 placeholderImage:[UIImage imageNamed:@".png"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) { } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) { }]; */ if (JSON_Array>0) { Array_Image_Name=[JSON_Array valueForKey:@"image_name"]; [Array_Image_Name retain]; } else { UIAlertView *Alert=[[UIAlertView alloc]initWithTitle:@"Failure" message:@"Error To Load Image" delegate:Nil cancelButtonTitle:@"OK" otherButtonTitles:Nil, nil]; [Alert show]; [Alert release]; } } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return Array_Image_Name.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell; cell=nil; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } AsyncImageView *Load_Image=[[AsyncImageView alloc]initWithFrame:CGRectMake(20, 10, 280, 100)]; Load_Image.imageURL=[NSURL URLWithString:[NSString stringWithFormat:@"%@/Images/%@",ServerPath,[Array_Image_Name objectAtIndex:indexPath.row]]]; Load_Image.showActivityIndicator=YES; [cell.contentView addSubview:Load_Image]; return cell; } 
 AsyncImageView *asyncImage = [[AsyncImageView alloc] initWithFrame:CGRectMake(0.0f, 1.0f, 320.0f, 174.0f)]; NSString *imgUrlString = photobig1; while ([imgUrlString rangeOfString:@" "].location != NSNotFound) { imgUrlString = [imgUrlString stringByReplacingOccurrencesOfString:@" " withString:@""]; } UIImageView *imageview = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"Loading Image.png"]]; [asyncImage addSubview:imageview]; asyncImage.tag = 999; NSString *webStr = [NSString stringWithFormat:@"%@",imgUrlString]; NSURL *imageUrl = [[NSURL alloc] initWithString:[webStr stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]; [asyncImage loadImageFromURL:imageUrl]; [asyncImage setBackgroundColor:[UIColor clearColor]]; asyncImage.userInteractionEnabled = NO; [scrollView addSubview:asyncImage];