2017-06-07 2 views
0

J'ai une exigence où je dois charger une interface utilisateur différente en fonction de l'option sélectionnée dans un ViewController. Voici la représentationSwitch ViewContrôleurs de différentes hauteurs dans la vue conteneur

enter image description here

Option1 et Option2 sont des boutons radio et l'utilisateur est autorisé à sélectionner une seule option à la fois. Basé sur la sélection, la zone ci-dessous doit être mise à jour avec différents champs de texte. Donc, j'ai créé une vue en dessous des options qui agit comme un conteneur. Création de deux ViewControllers avec textFields pour Option1 et Option2 auxquels seront ajoutés des contrôleurs de vue enfant dans containerView. Ci-dessous la hiérarchie du mainViewController

-> Voir

------> ScrollView

------------> ContentView

- -----------------> Étiquette

------------------> Étiquette

--- ---------------> Option1

------------------> Option2

------------------> ContainerView

Basé sur l'option sélectionnée, je charge viewController respectif comme childViewController à containerView. Le point à noter est, le nombre de champs pour l'option1 et l'option2 sont différents et la hauteur de containerView doit être ajustée en fonction du nombre de sous-vues dans l'option sélectionnée, de sorte que l'écran complet est défilable.

Je ne pouvais pas redimensionner les viewControllers option1 et option2 en fonction du nombre de champs (sous-vues).

Comment puis-je ajuster la hauteur de childViewControllers en fonction du nombre de champs et définir la hauteur de containerViews?

Ou quelle serait la meilleure approche pour réaliser une telle conception?

+0

Avez-vous assez d'espace vertical pour maintenir la pleine vue "Option 2"? Si c'est le cas, ajustez simplement la taille de la vue lorsque vous l'ajoutez à votre vue Conteneur. Sinon, vous devrez peut-être utiliser des vues de défilement. – DonMag

Répondre

0

Comment puis-je régler la hauteur de childViewControllers en fonction du nombre de champs

Cela dépend du contenu dans les contrôleurs de vue des enfants.

Définir la hauteur du conteneur?

Une fois que vous avez ajouté la vue enfant au conteneur. Appelez containerView.sizeToFit() et il ajustera sa taille pour s'adapter à la vue enfant.

Remarque: Assurez-vous de ne pas avoir de contraintes sur la vue du conteneur en limitant sa hauteur ou de ne pas pouvoir l'ajuster.

https://developer.apple.com/documentation/uikit/uiview/1622630-sizetofit