28 votes

Qu'est-ce que Container View dans le SDK iOS 5?

Je ne comprends pas pourquoi et quand nous devons utiliser la vue conteneur? et comment instancier une vue conteneur par code?

38voto

rdelmar Points 53270

Le conteneur de vue est un point de vue que vous pouvez glisser dans l'un de vos contrôleurs de vue que vous avez déjà dans votre storyboard (nous l'appellerons ainsi viewControllerA). Vous obtenez automatiquement une-vue-contrôleur connecté à ce point de vue via un embed segue. Cette nouvelle vue contrôleur dispose de son châssis, de sorte qu'il est de la même taille que le conteneur de vue -- si vous redimensionnez le conteneur de vue, le contrôleur va automatiquement redimensionner ainsi. Donc, si vous voulez, vous pouvez le faire glisser dans de conteneurs multiples points de vue dans les viewControllerA, et chacun aura son propre point de vue contrôleur. Dans le code, si vous avez besoin d'accéder à ces contrôleurs de vue, ils peuvent être accessibles à partir de viewControllerA.childViewControllers -- qui vous donnera un tableau de toute vue intégrée de contrôleurs que vous avez.

Il y a une discussion de ces conteneurs vues dans la WWDC 2012 Session Vidéos vidéo intitulée "l'Adoption des Storyboards dans Votre Application".

29voto

Caleb Points 72897

Je suis confus que pourquoi et quand nous avons besoin d'utiliser le conteneur de vue?

Quand les gens parlent de conteneur de vues, ils signifient habituellement juste un simple vieux UIView qui contient d'autres points de vue. À l'aide d'une vue de cette façon, vous permet de déplacer tous les points de vue qu'il contient en tant que groupe, de sorte que leurs positions les uns par rapport aux autres sont maintenus. Il rend également facile de cacher tous les contenus vues en tant que groupe.

et comment peut-on instancie un Conteneur de Vue par le code?

Même manière que vous le feriez instancier une UIView de code normalement:

CGRect frame = CGRectMake(someX, someY, someWidth, someHeight);
UIView *container = [[UIView alloc] initWithFrame:frame];

Après cela, vous aurez probablement souhaitez ajouter des sous-vues pour le conteneur, et, éventuellement, ajouter le conteneur comme une sous-vue de votre point de vue du contrôleur de vue.

Aussi, notez que nous parlons de points de vue et de ne pas afficher les contrôleurs ici. Les gens parlent également de conteneur affichage des contrôleurs, ce qui signifie la vue des contrôleurs qui peuvent gérer d'autres contrôleurs de vue. UITabBarController, UINavigationController, et UISplitViewController sont des exemples de l'conteneur affichage des contrôleurs qui sont fournis par iOS. Vous pouvez créer votre propre si vous voulez, mais c'est un sujet pour une autre question.

Mise à jour: à Partir de votre commentaire, vous êtes apparemment, vous demandez-vous à propos de la "Conteneur de Vue" de l'élément dans la table de montage de l'éditeur. Si vous faites glisser l'un dans une vue, vous verrez que:

  1. La vue elle-même est une UIView utilisé comme un espace réservé.

  2. La vue, l'éditeur crée une zone où vous pouvez éditer le contenu est géré par un enfant-vue-contrôleur. Voir l'image ci-dessous.

container view in IB

Ce n'est pas seulement un objet, c'est plusieurs. Vous obtenez une vue, un enfant de-vue-contrôleur, et un "intégrer" segue. Vous pouvez certainement créer de ceux dans le code vous-même et de les connecter de façon appropriée si vous le souhaitez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X