UITextView no cambia de tamaño correctamente en iPad solamente

Tengo un UITableView estático con 3 filas en 1 sección. Cada fila contiene un UITextView que debe cambiar el tamaño según el contenido. Cada uno de los objects UITextView se ha desplazado deshabilitado para obligarlo a crecer. Cada uno está fijado en los 4 lados del contenido de la celda y no tiene otras restricciones.

Cuando corro en iPad (real o sim), la celda cambia de tamaño a una sola línea de text, independientemente del contenido de UITextView. Cuando examino la jerarquía de vista en el depurador, veo que la altura de UITextView se establece en 27.5 aunque el alto de la vista de contenido es 183.5. Esto parece ser el resultado de la restricción de altura en UITableViewCellContentView que limita la altura de la celda. Esto no es una restricción que establezco. Mi controller de vista de tabla no tiene un método heightForRow o cellForRow porque es una vista de tabla estática y usa el layout automático para todo. No sé cómo se agrega esta restricción.

introduzca la descripción de la imagen aquí

Aquí está exactamente la misma jerarquía con los mismos contenidos exactos en el mismo punto en que se ejecuta en un iPod touch. Tenga en count que la altura UITextView y la altura del contenido son las mismas esta vez. En este caso, la restricción UITableViewCellContentView en altura es lo suficientemente grande como para acomodar la altura UITextView.

introduzca la descripción de la imagen aquí

En ambos casos, esta es la misma fuente que ejecuta y muestra el mismo contenido. Ese contenido contiene líneas de text cortas con retornos de carro, por lo que debe tener el mismo tamaño de contenido en ambos tamaños de pantalla. UITextView quiere dimensionar su altura a 183.5, pero en el iPad la altura de la celda se ve limitada innecesariamente por una restricción generada por iOS.

Aquí está el código para viewDidLoad:

- (void)viewDidLoad { [super viewDidLoad]; //shrink the uiswitch a little bit self.displayRegexCharsSwitch.transform = CGAffineTransformMakeScale(0.70, 0.70); //these next 2 lines set up the table to automatically resize based on content self.tableView.estimatedRowHeight = 100.0f; self.tableView.rowHeight = UITableViewAutomaticDimension; //next line hides the blank cells self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; //these are needed on iPad or rows with accessory view don't resize [self.tableView beginUpdates]; [self.tableView endUpdates]; } 

Nuevamente, no hay heightForRow ni cellForRow en el controller de vista de tabla debido a que usa la vista de tabla estática.

Estoy desconcertado ¿Por qué UITextField informa un tamaño de contenido diferente en el iPad que en el iPod si el contenido es el mismo y el código es el mismo? De la vista jerárquica se desprende que el UITextField sabe internamente que su altura es 200, pero contentSize regresa 27.5. Esta es una vista de tabla estática, por lo que no hay un método heightForRow y ningún método cellForRow. Dependiendo del layout automático para gestionar todo el layout, lo que hace correctamente en el iPad.

EDITAR

FYI: el layout se basa exclusivamente en la class Any / Any size.

introduzca la descripción de la imagen aquí

¡Lo encontré! Porté el layout a un nuevo proyecto para aislar el problema de otras cosas que suceden en el proyecto. El problema de layout no se produjo en el nuevo proyecto. Entonces comparé la configuration general del proyecto y noté que el nuevo proyecto tenía un objective de implementación de iOS 8.3 y el proyecto original tenía un objective de implementación de iOS 6.0. Cuando establecí el nuevo objective de implementación del proyecto en iOS 6.0, apareció el problema de layout. Lo mismo para iOS 7.0. Sin embargo, para iOS 8.0 y superior, el problema desaparece. Hora de forzar a mis usuarios a actualizar a iOS 8.

introduzca la descripción de la imagen aquí