Al usar un UITableViewController, el método initWithStyle crea automáticamente el UITableView subyacente con, según la documentación, "las dimensiones correctas".¿Cómo usar un UITableViewController con una tabla pequeña?
Mi problema es que estas "dimensiones correctas" parecen 320x460 (el tamaño de pantalla del iPhone), pero estoy empujando este par TableView/Controller en un UINavigationController que está en sí mismo en una UIView, que es aproximadamente la mitad de altura de la pantalla
No hay disputas de marco o límites que se me ocurran, parece restablecer correctamente el tamaño de la tabla, y como tal es "demasiado larga", lo que significa que hay una colección de filas que se quitan de la parte inferior de la pantalla y no visible ni alcanzable al desplazarse.
Así que mi pregunta se reduce a: ¿cuál es la forma correcta de decirle a UITableViewController que cambie el tamaño de su componente UITableView a un rectángulo específico?
Gracias!
actualización He intentado todas las técnicas sugeridas aquí en vano, pero encontré una cosa interesante: si evito la UINavigationController por completo (que todavía no estoy dispuesto a hacer para la producción, sino como una experimento) y agregue la vista de tabla como directa subvista de la vista adjunta que mencioné, el tamaño de fotograma dado se respeta. El mismo momento Vuelvo a introducir el UINavigationController en la mezcla, sin importar si se agrega como una subvista antes o después de la vista de tabla, y no importa si alloc/init antes o después de que se agregue la vista de tabla como una subvista , el resultado es el mismo que antes.
estoy empezando a sospechar UINavigationController no es mucho de un jugador de equipo ...
Actualización 2 La sugerencia para comprobar tamaño de la trama después de la vista de tabla en la pantalla era una buena: resulta que el controlador de navegación de hecho está redimensionándolo en algún momento entre la carga y la pantalla. Mi solución, hacky en el mejor de los casos, ha sido guardar en caché el marco dado en la carga y restablecerlo si se cambia al comienzo de tableView: cellForRowAtIndexPath :. ¿Por qué lo preguntas? ¡Porque es el único lugar que encontré que funcionó, por eso!
No considero que esto sea una solución, ya que es obviamente incorrecto, pero para el beneficio de cualquier otra persona que lo lea, parece funcionar.
acordado, simplemente extender UIViewController lugar, y añadir una propiedad tableView por su cuenta como esto
@property (nonatomic, retain) UITableView \t *tableView;
– Zennichimaro