Altura de UITableViewCell en function del espacio de pantalla disponible

Quería crear un layout para mi UITableView tal manera que esté dividido en 2 secciones: la primera sección tiene 3 filas de altura estándar (44px), y la segunda sección tiene una fila, que contiene una UITextView que llena completamente esta celda. La parte difícil es que quiero dimensionar la fila de celdas de este textView a la altura del área visible de la tableview , de modo que la vista de text ocupe la vista restante en la pantalla. ¿Cómo descubro, dentro de

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

¿Qué aspecto tiene la altura restante? Anteriormente había hecho suposiciones codificadas en function de los dos tamaños de pantalla de iPhone disponibles (480 y 568) pero con la nueva pantalla iPhone6 ​​y iPhone 6+, no quiero usar ningún valor supuesto para calcular esto.

Ya tiene la altura de la vista de tabla en tableView.bounds.size.height , solo necesita restar la altura de la primera sección. asi que

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.section == 0) { return 44; } return tableView.bounds.size.height - 44 * 3; } 

Con los encabezados, dependiendo de cómo se comporten, puede usar rectForHeaderInSection: o rectForSection: para get las alturas

Si está seguro de que nunca cambiará el número de filas, puede hacer esto estático desde el guión gráfico. Puede insert celdas prototipo tantas como necesite. Y con autolayout o autosizing, puede configurar las celdas para que sean estáticas o boost con el tamaño de la pantalla.

Pero si realmente desea progtwigrlo, obtenga la altura de la pantalla con self.view.bounds.size.height retire las 3 celdas y 2 encabezados de la sección y el rest es su celda UITextView.