2017-09-22 2 views
1

Je suis en train de la mise en page de l'interface utilisateur suivante Voir Comment mise en page avec deux vues de conteneurs avec des tables intégrées

L'interface utilisateur principale View a deux vues conteneurs. La vue supérieure du conteneur intègre un contrôleur de table statique. La vue de conteneur inférieure intègre un autre contrôleur de table que je veux être dynamique.

Comment puis-je définir la disposition de manière à ce que la hauteur de la vue supérieure du conteneur soit égale à celle de la première table et que la vue inférieure du conteneur obtienne le reste?

À l'heure actuelle, la hauteur est ambiguë pour les vues conteneur.

+0

Par "hauteur de la table du haut", vous voulez dire la hauteur minimum pour que toutes les cellules puissent être affichées sans défilement? –

+0

Je pense que vous devriez ajouter une contrainte de hauteur à la vue supérieure du conteneur, et une sortie dans le code. Ensuite, lors de l'exécution, la ** taille du contenu de la table ** et ajuste la constante de la cosntraint. https://stackoverflow.com/a/17939938/433373 –

+0

La table du haut a 3 lignes donc je veux que cela soit affiché. La table du bas pourrait avoir beaucoup plus de lignes .. donc cela devrait faire défiler (c'est logique) – rrevo

Répondre

0

Contraint la hauteur de votre vue de la table supérieure à une valeur fixe (peu importe quoi).

Effectuez une sortie de cette contrainte de hauteur.

Dans votre contrôleur de vue, faites ceci:

heightConstraint.constant = tableView.contentSize.height 

cette façon vue de dessous ajustera en conséquence. Assurez-vous de désactiver le rebondissement dans la vue du tableau supérieur.

+0

This. Assurez-vous juste d'interroger le 'contentSize' de la table au ** bon moment ** (voir la réponse liée dans mon commentaire précédent pour cela). –

+0

@NicolasMiari J'étais capable de suivre les autres instructions sauf quand interroger le contentSize. – rrevo

+0

@rrevo la réponse que j'ai liée traite de forcer la vue de table à mettre à jour sa taille de contenu, de sorte que la valeur demandée soit valide. Vérifiez-le. –