Altura de celda dinámica basada en contenido ios

Estoy trabajando en una aplicación que carga las publicaciones del usuario en Facebook. Toda esta información se pone en una vista de tabla. Las celdas son prescindibles cuando tocas. Por ahora solo hay text en él. Calculo la altura del text para que sepa qué tan alta debe ser la celda cuando se expande.

El problema que tengo es que debe haber más que solo text en él. Si el usuario publica un video en Facebook, el video también se incrustará en la celda. Pero dado que la altura se calcula en function del text, no deja espacio para el video embedded. Puedo agregar un margen en la celda, pero este margen se aplicará entonces a la celda.

Este es el código que estoy usando en este momento:

//Function executes everything within when a certain row in tapped/selected - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self.tableView reloadData]; [self stopLoading]; if (selectedIndexPath == indexPath) { selectedIndexPath = nil; } else { selectedIndexPath = indexPath; } [self.tableView deselectRowAtIndexPath : indexPath animated : YES]; [tableView beginUpdates]; [tableView endUpdates]; } //Change heigth of the selected row - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if ((selectedIndexPath != nil) && (selectedIndexPath.row == indexPath.row)) { labelSize = [[result2 objectAtIndex:indexPath.row] sizeWithFont:[UIFont fontWithName:@"Helvetica" size:13.0] constrainedToSize:CGSizeMake(220.0f, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap]; return labelSize.height + 136; } return 68.0; } 

Entonces, lo que necesito saber. ¿Cómo puedo calcular la altura de la celda en function de todo el contenido? y no solo el text.

Sería genial si alguien puede ayudar con esto.

Por adelantado

En realidad … fue bastante simple. Simplemente tenía que agregar lo siguiente en heightForRowAtIndexPath

  NSString *video = [fbSource objectAtIndex:indexPath.row] ; if (video != @"empty") { return labelSize.height + 136; } return labelSize.height + 36;