Aumente la altura de la tabla Celular dinámicamente

Busqué la altura de aumento de la celda de la tabla. Tengo pocas respuestas. Esas no son apropiadas para mi condición.

Caso:

Tengo celda de tabla con altura pnetworkingeterminada 150. El contenido agregado en la celda de la tabla (Titile, Imagen, acción) es vista en la celda de la tabla. Cargamos la image a través de "UIImageView + AFNetworking.h" . Tenemos imágenes de diferente altura.

¿Cómo boost / disminuir la altura de la celda después de la carga de la image en la celda?

Para eso tienes que recargar tu celular en particular

// Build the index path NSIndexPath* indexPath1 = [NSIndexPath indexPathForRow:3 inSection:2]; // Add them in an index path array NSArray* indexArray = [NSArray arrayWithObjects:indexPath1, nil]; // Launch reload for the two index path [self.tableView reloadRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationFade]; 

Y tiene que devolver la altura de la celda desde tableView: heightForRowAtIndexPath: entonces llamará a su tableView: cellForRowAtIndexPath:

PS Estoy asumiendo que estás haciendo carga perezosa (carga de imágenes después de que se crea la celda)

Después de cargar la image en tableview cellForRowAtIndexPath calcule la altura de la image cargada. Da rowheight en heightForRowAtIndexPath .

Prueba este codigo

 -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { UIImage *Image= [imageAry objectAtIndex:indexPath.row]; NSLog(@"%f",Image.frame.size.height); return size.height + 10; } 

simplemente establezca la altura de la celda usando heightForRowAtIndexPath: delegue el método como a continuación …

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { UIImage *Tempimage= [yourArray objectAtIndex:indexPath.row]; UIImageView *imgTemp = [[UIImageView alloc]initWithImage:Tempimage]; return imgTemp.frame.size.height; } 

No he usado UIImageView+AFNetworking.h pero la idea para calcular la altura de la fila es calcular la altura de la image después de cargarla en algún lugar

espero que este método te ayude

 - (void)setImageWithURLRequest:(NSURLRequest *)urlRequest placeholderImage:(UIImage *)placeholderImage success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image))success failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure; 

y después de que la image cargada en el success calcule la altura de la image image.size.height y añada esto en la matriz para la tabla

 NSMutableDictionary *record = [array objectAtIndex:index]; [record setObject:[NSString stringWithFormat:@"%f",image.size.height] forKey:@"imageheight"]; [array replaceObjectAtIndex:index withObject:record]; [tableView reloadData]; 

y establezca la altura de la fila como esta

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSMutableDictionary *record = [array objectAtIndex:index]; if ( [record objectForkey:@"imageheight"] ) { return [[record objectForkey:@"imageheight"] floatValue] + yourmargin); // yourmargin may be 150 or what ever be } else { return 150; } } 

Después de download la image, escriba las siguientes líneas:

[self.tblStoryCardView beginUpdates]; [self.tblStoryCardView endUpdates];

Y la altura de la image descargada en el método de altura de fila.

Cargué un proyecto ficticio en github. puedes verificarlo: https://github.com/govindprasadguptacool/Dynamic-Table-Cell-Height