Altura de fila UITableViewCell

¿Hay algún método o solución para ajustar automáticamente la altura de fila de tableview según el contenido? Quiero decir que no quiero especificar la altura de la fila y quiero que la altura de la fila esté de acuerdo con el contenido de la fila. Si no hay tal método, entonces dígame la solución que ¿cómo puedo cambiar altura cuando cambia la orientación del dispositivo?

Tendrá que encontrar la altura de su contenido y puede usarlo

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return "your content height + your padding height value"; } 

En el cambio de orientación, simplemente vuelva a cargar la vista de la tabla;

Puede implementar el - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

delegate method de UITableView.

Debería poder encontrar muchos tutoriales si lo hace en google.

Aquí hay uno por ejemplo:

http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/

mira esto

 // --dynamic cell height according to the text-- - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *text = <your text>; CGSize constraint = CGSizeMake(210, 20000.0f); CGSize size = [text sizeWithFont:[UIFont fontWithName:@"Helvetica-Light" size:14] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap]; // constratins the size of the table row according to the text CGFloat height = MAX(size.height,60); return height + (15); // return the height of the particular row in the table view } 

espero que esto ayude

EDITAR para la orientación ¿ha probado este método?

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return YES; } 

o bien, si las celdas de la tabla están personalizadas con tags y vistas de imágenes, etc., puede usar setAutoresizingMask: en cada una para ajustar automáticamente a orientaciones.

 [yourview setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight]; 

TIENES que usar:

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

Sí, sé que conoces muy bien este método y he leído tu pregunta cuidadosamente.

  1. Debe usar ese método de delegado para controlar dinámicamente la altura de las filas. Mi sugerencia es examinar el contenido en cada celda de su model de datos de backend para la vista de tabla y devolver un número que sea apropiado para esa celda como:

NSDictionary *thisCell = (NSDictionary *)[myArray objectAtIndexPath:indexPath.row];

 NSString *myCellContents = [thisCell valueForKey:@"MyStringIWantToCheckOut"]; if ([mycellContents length] > 25) { return 80; } else { return 40; } 
  1. En cuanto a cuando la orientación cambia, debería hacerlo en el método de delegado:

    -(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration

y luego dispara reloadData en el TableView .

 - (CGFloat)tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { switch (indexPath.row){ case 0: if(indexPath.section == 0) //title return 75; default: return 75; } }