Múltiples UITableViews visibles a la vez en un UIViewController

He visto preguntas sobre multless UITableViews en una vista, pero todas tienen una sola tabla visible a la vez. Estoy buscando algo diferente, por favor.

En mi cabeza quiero cuatro UITableViews visibles en una UIScrollView dentro de una UIView. Las cuatro tablas estarán visibles y pobladas a la vez. Tendrán una cantidad dinámica de filas cada uno, por lo que la vista de desplazamiento permitirá a los usuarios desplazarse fuera de la página para ver filas que no encajan.

Las tables estarían dos una al lado de la otra y luego debajo de ellas, las dos próximas una al lado de la otra para que termines con un cuadrado de 2×2.

Puedo (tipo de) envolver mi cabeza sobre cómo codificar esto en los controlleres, etc. pero no puedo entender cómo organizar el jerarquía. He intentado usar la tienda para distribuir las tablas dentro de la vista, pero 9 de cada 10 bashs de dejar caer los controles fallan, ya que obviamente no estoy entendiendo completamente esto.

¿Debo generar UITableViews en el file de implementación de UIViews y agregarlos como objects a UIView? ¿O puedo usar el Storyboard?

¿Alguien podría explicar cómo se estructuraría la jerarquía de los objects?

En mi cabeza sería: UIViewController

-> UiView

—> UIScrollView

——> UITableView

——> UITableView

——> UITableView

——> UITableView

Pero probar esto en Storyboard no funciona. Supongo que cada UITableView querrá su propio UITableViewController y lo que he leído en otras publicaciones, también necesitaría hacer esto conectándose en el file de implementación UIViewController.

Cualquier ayuda es apreciada.

Creo que podría tratar de arrastrar UITableViewController a su controller de vista, al less no tengo ese problema para agregar 4 vista de tabla en una vista de desplazamiento.

aquí es cómo lo agregué

1.> Arrastre el control de vista de desplazamiento hacia el controller de vista

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

Su controller de vista debería verse así:

introduzca la descripción de la imagen aquí

2.> Arrastre el control de vista de tabla a la vista de desplazamiento y configure el tamaño y la position de esa vista de tabla

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

Su controller de vista debería verse así:

introduzca la descripción de la imagen aquí

3.> Luego arrastre todas las otras 3 vistas de tabla a la vista de desplazamiento

introduzca la descripción de la imagen aquíintroduzca la descripción de la imagen aquí

Pero me gustaría sugerirle un par de cosas en su caso

  1. sin usar tanta vista de tabla en el mismo controller de vista, es un caos en sus códigos para mantenerlos todos. Siempre hay mejores opciones que 4 vista de tabla, tal vez considere la vista de colección. o incluso separar el flujo de uso.

  2. Si fuera usted, no usaré la vista de tabla dentro de la vista de desplazamiento, son como la vista de desplazamiento dentro de la vista de desplazamiento, si no diseña la interacción muy bien, se vuelven extremadamente difíciles de usar.

  3. Si aún desea utilizar la vista de cuatro tablas en el mismo controller de vista después de todo, desea pagar atenciones adicionales en la fuente de datos de vista de tabla y delegar. Maneje con mucho cuidado todos los casos.

Espero que te ayude.

Vistas de la table son vistas de desplazamiento muy personalizadas. No pondría 4 de ellos en una vista de desplazamiento, esto no sería muy intuitivo para el usuario ya que su dedo desplazaría la vista de muchas maneras dependiendo de dónde toque exactamente la pantalla.

En cambio, intente tener sus 4 vistas de tabla en un patrón de 2×2 directamente en una UIView simple. Esto se puede hacer dentro del Storyboard.

En cuanto a llenarlos y usarlos, tiene 2 maneras:

A) Su UIViewController es el delegado y el origen de datos de cada una de las 4 vistas de la tabla. Al ejecutar, realiza un cambio en el primer parámetro (la vista de tabla que te llamó) para determinar el curso de acción apropiado.

B) Usted crea 4 classs que cada una manejan una única vista de tabla, instancia 4 objects dentro de su UIViewController y asignan las properties delegadas y fonts de datos de UITableviews a estos objects.

Todo el tecnicismo a un lado, 4 vistas de table en una sola pantalla está bastante lleno. Su layout definitivamente no volará en un iPhone, así que estoy asumiendo iPad solamente. Incluso entonces, debe asegurarse de que todo sea visualmente atractivo y el propósito de cada control sea claro. Depende de usted, pero no me gustaría verlo trabajar duro en una aplicación solo para ver sus esfuerzos desperdiciados porque su layout visual no atrae a sus usuarios.

Si las vistas de la tabla ocupan toda la región de la vista de desplazamiento, no permitirán que ningún evento de desplazamiento pase a la vista de desplazamiento que los contiene, a less que el desplazamiento sea horizontal.

Para un simple uno a uno entre una vista de tabla y un controller de vista, haría que cada vista de tabla sea parte de su propio UITableViewController (por lo que tiene cuatro), y luego haría un UIViewController que agrega a cada uno de los UITableViewControllers como un elemento secundario.

De esta forma, no tiene que hacer ninguna lógica de fantasía en torno a las sentencias en las que tableview solicita datos, ya que los controlleres de vista de tabla solo tienen una vista de tabla.

https://developer.apple.com/library/ios/featunetworkingarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html