Tengo problemas para crear un UIView (en el Creador de interfaces) que contiene una UITableView con algún otro objeto, como UIButton o UILabel. UITableView siempre ocupa la máxima cantidad de espacio en UIView, independientemente del tamaño del objeto UITableView. El propietario del archivo es un UITableViewController estándar.UITableView utiliza todo el espacio disponible en el Generador de interfaces
Respuesta
Aquí se explica cómo hacerlo fácilmente:
1) Cree un controlador de vista de tabla con xib.
2) Cambie el tipo heredado en el archivo .h de UITableViewController, a UIViewController.
3) Agregue los protocolos UITableViewDataSource, UITableViewDelegate al archivo .h.
4) Abra el xib, agregue una vista.
5) arrastre la vista de tabla en el xib en la vista, cambie el tamaño como desee.
6) Conecte la propiedad "ver" del propietario del archivo a la vista en lugar de la UITableView. Las fuentes de datos y las propiedades de delegado de la vista de tabla aún deben estar conectadas al propietario del archivo.
7) (opcional) si desea poder volver a cargar o acceder a la tabla fuera de Table View Controller delegue métodos que pasan en una vista de tabla, haga que una UITableView * IBOutlet se llame "myTable" o similar, y conecte la mesa en IB a eso.
Un enfoque alternativo es hacer una nueva UIViewController con xib, añadir una tabla a la xib, fuente de datos de alambre/delegado al propietario del archivo, y hacer una nueva clase UITableViewController que se utiliza para copiar los métodos de en su controlador de vista, luego eliminar.
Esta es la forma correcta de hacerlo.De los documentos de Apple: "Si la vista a gestionar es una vista compuesta en la que una vista de tabla es una de múltiples subvistas, debe usar una subclase personalizada de UIViewController para administrar la vista de tabla (y otras vistas). No use un UITableViewController objeto porque esta clase de controlador mide la vista de tabla para llenar la pantalla entre la barra de navegación y la barra de pestañas (si están presentes) ". – bpapa
También hay un paso que creo que debes agregar Kendall: tendrá que agregar explícitamente el tableView como propiedad de su clase UIViewController y convertirlo en un IBOutlet. – bpapa
Kendall/bpapa - Gracias por su ayuda. Usando sus respuestas combinadas, pude abordar mi problema. Una cosa sobre el último comentario de bpapa: tuve que crear una propiedad llamada "tableView" en mi clase UIViewController; sin embargo, parecía funcionar incluso si no lo declaraba como un IBOutlet o conectaba el IBOutlet con el propio TableView. Todavía no entiendo por qué funciona ... :-) –
Desafortunadamente, crear una UITableView en Interface Builder (IB) fue muy problemático para mí. Me encontré con los mismos problemas que usted como desarrollador principiante y, después de mucha frustración, terminé abandonando IB para UITableViews.
La mejor solución para mí fue simplemente implementar el UITableViewController (y el UINavigationController que usa como encabezado) programáticamente. Una vez que descubra todo el paradigma Model-View-Controller, en realidad es bastante sencillo.
Algunos buenos recursos para tratar con ellos mediante programación se pueden encontrar en la documentación de Apple con estos nombres:
"Tabla Guía de programación para iPhone OS"
"View Controller Guía de programación para iPhone OS"
Mire la respuesta de Kendall y mi comentario. Desde 3.0, Apple limpió los documentos para explicarlo mejor. Con este enfoque, aún puede hacer vistas de tabla en el generador de interfaz. – bpapa
Es bueno saberlo, gracias. –
Cocoa con amor tiene un artículo sobre Recreating UITableViewController to increase code reuse. Esto es útil si no puede usar un UITableViewController
, pero quiere asegurarse de que su UIViewController
se comporte de la misma manera.
- 1. Rellene todo el espacio disponible en StackPanel
- 2. conseguir todo el espacio total y disponible en Android
- 3. cómo tener un control de llenar todo el espacio disponible
- 4. Estirar columnas para llenar todo el espacio disponible de DataGrid
- 5. Fuerza <textarea> para ocupar todo el espacio disponible
- 6. Haz que una div ocupe todo el espacio vertical disponible?
- 7. CSS - Hacer que un div consuma todo el espacio disponible
- 8. Contenido usando todo el espacio disponible con jQuery Mobile
- 9. Eliminar el diseño automático (restricciones) en el Generador de interfaces
- 10. JavaFX: ¿Cómo hacer que mi componente personalizado use todo el espacio disponible desde el diseño principal?
- 11. ¿Cómo hacer una ToolStripComboBox para llenar todo el espacio disponible en una ToolStrip?
- 12. ¿Cómo obtener controles en WPF para llenar el espacio disponible?
- 13. El encabezado de la sección UITableView es todo negro
- 14. ¿Cómo controlar el espacio disponible del búfer UDP de Linux?
- 15. ¿Utiliza el espacio de nombres 'Mi' en VB.NET?
- 16. ¿cómo puedo enumerar todo el espacio de nombres en XML?
- 17. Cómo verificar el espacio libre disponible en mongodb
- 18. ¿Cómo puedo hacer que un elemento en una barra de herramientas llene todo el espacio disponible en WPF
- 19. Diseño de CSS que llena el espacio disponible
- 20. SWT: diseños anidados con ScrolledComposite excede el espacio disponible
- 21. Cómo hacer que DockPanel complete el espacio disponible
- 22. ¿Cómo hacer que los elementos en un DockPanel se expandan para adaptarse a todo el espacio disponible en WPF?
- 23. Cambia el tamaño de los encabezados de UITableView al rotar (sobre todo en el iPad)
- 24. Cómo copiar todo el directorio en el generador de Rails desde las plantillas
- 25. La altura de UITableViewCell no cambia en UITableView al cambiarlo en el Generador de interfaz
- 26. Obtenga espacio de disco disponible en ruby
- 27. WPF Dockpanel primer hijo utiliza el espacio restante
- 28. Efecto de las definiciones de clase de Scala en el espacio generador de perm
- 29. Establecer el fondo de UITableview en el constructor de interfaz?
- 30. Espacio entre las celdas de UITableView
¿Podría cambiarle el nombre a algo así como: "UITableView usa todo el espacio disponible en Interface Builder"? El título actual no es muy descriptivo. – Casebash