playsinline inc images imagenes fotos apple iphone objective-c ipad ios5 ios6

inc - Asynchronus para loop en iphone



playsinline video html5 (1)

UICollectionView debería ser una mejor opción para mostrar ese tipo de datos en mi opinión, pero no es compatible con ios5.

Si necesita una compatibilidad con ios 5, revise esa respuesta: https://stackoverflow.com/a/16039194/2707614

Finalmente, para responder a su pregunta, puede intentar usar Grand Central Dispatch como se explica aquí

Debería verse así (no tengo una computadora para probar):

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); dispatch_async(queue, ^{ for (int i=3; i<[[[self rssParser]rssItems]count]; i++) // for (int i=3; i<[titlearray count]; i++) { if (i%3==0) { x=0; y++; } view=[[UIView alloc]initWithFrame:CGRectMake((x*250)+10, (y*306)+105, 244, 300)]; [view setBackgroundColor:[UIColor whiteColor]]; view.layer.borderColor=[[UIColor whiteColor]CGColor]; view.layer.borderWidth=1.0; view.layer.cornerRadius = 5; view.layer.masksToBounds = YES; titlelabel=[[UILabel alloc]initWithFrame:CGRectMake(10, 10, 230, 20)]; [titlelabel setText:[[[[self rssParser]rssItems]objectAtIndex:i-1]title]]; [titlelabel setNumberOfLines:0]; titlelabel.font=[UIFont boldSystemFontOfSize:14.0f]; [titlelabel setBackgroundColor:[UIColor clearColor]]; [titlelabel sizeToFit]; datelabel=[[UILabel alloc]initWithFrame:CGRectMake(10, 62, 190, 20)]; [datelabel setText:[[[[self rssParser]rssItems]objectAtIndex:i-1]pubDate]]; [datelabel setNumberOfLines:0]; datelabel.font=[UIFont fontWithName:@"arial" size:10.0f]; [datelabel setBackgroundColor:[UIColor clearColor]]; [datelabel sizeToFit]; x++; dispatch_sync(dispatch_get_main_queue(), ^{ [scroller addSubview:view]; [view addSubview:titlelabel]; [view addSubview:datelabel]; }); } });

el bucle for se ve así, lo que he escrito a la vista se cargó, por lo que lleva más tiempo cargar esta página.

for (int i=3; i<[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]count]; i++) { if (i%3==0) { x=0; y++; } view=[[UIView alloc]initWithFrame:CGRectMake((x*250)+5, (y*404)+6, 244, 400)]; [view setBackgroundColor:[UIColor whiteColor]]; view.layer.borderColor=[[UIColor whiteColor]CGColor]; view.layer.borderWidth=1.0; view.layer.cornerRadius = 5; view.layer.masksToBounds = YES; [scroller addSubview:view]; titlelabel=[[UILabel alloc]initWithFrame:CGRectMake(10, 10, 230, 20)]; [titlelabel setText:[[[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]objectAtIndex:i]objectForKey:@"title"]objectForKey:@"text"]]; [titlelabel setNumberOfLines:0]; titlelabel.font=[UIFont boldSystemFontOfSize:15.0f]; [titlelabel setBackgroundColor:[UIColor clearColor]]; [titlelabel sizeToFit]; [view addSubview:titlelabel]; datelabel=[[UILabel alloc]initWithFrame:CGRectMake(10, 62, 190, 20)]; [datelabel setText:[[[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]objectAtIndex:i]objectForKey:@"title"]objectForKey:@"text"]]; [datelabel setNumberOfLines:0]; datelabel.font=[UIFont fontWithName:@"arial" size:12.0f]; [datelabel setBackgroundColor:[UIColor clearColor]]; [datelabel sizeToFit]; [view addSubview:datelabel]; NSData *data=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:[[[[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]objectAtIndex:i]objectForKey:@"image"]objectForKey:@"text"]stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]]; NSLog(@"data= %@",data); if (data==NULL ||[[[[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]objectAtIndex:i]objectForKey:@"image"]objectForKey:@"text"] isEqualToString:@""]) { textview=[[UITextView alloc]initWithFrame:CGRectMake(2,80, 238, 386)]; [textview setText:[[[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]objectAtIndex:i]objectForKey:@"title"]objectForKey:@"text"]]; [textview setFont:[UIFont fontWithName:@"ArialMT" size:14]]; [textview setDelegate:self]; [view addSubview:textview]; } else { imageview=[[UIImageView alloc]initWithFrame:CGRectMake(7, 80, 230, 150)]; [imageview setImage:[UIImage imageWithData:data]]; [view addSubview:imageview]; textview=[[UITextView alloc]initWithFrame:CGRectMake(5, 240, 238, 200)]; [textview setText:[[[[[[dataDict objectForKey:@"rss"]objectForKey:@"channel"]objectForKey:@"item"]objectAtIndex:i]objectForKey:@"title"]objectForKey:@"text"]]; [textview setFont:[UIFont fontWithName:@"ArialMT" size:14]]; [textview setDelegate:self]; [view addSubview:textview]; }

}

Aquí el problema de wat me hace que sea la imagen que se obtiene del servidor cada vez, así que esto se vuelve más lento, los pls sugieren cómo hacer que funcione como carga diferida ....

gracias por adelantado