J'ai une application avec une UITabController
et chaque onglet est un UINavigationController
. La racine de l'un de mes UINavigationControllers
est UIViewController
.
À l'intérieur de ce point de vue du contrôleur de vue, je tiens à la disposition de certains des sous-vues, mais je suis confus sur où et comment les agencer de façon à être indépendant de la résolution (c'est à dire de ne pas coder en dur des valeurs telles que la 320px, 480px, 44px, etc.).
Lorsque la vue est entièrement équipé et est présenté sur un vertical de l'iPhone, c'est la hauteur sera 367px = 480 - 20 (barre d'état) - 44 (barre de navigation) - 49 (barre d'onglet).
À l'intérieur de la vue-contrôleur, j'ai actuellement de créer tous mes sous-vues au sein de l' viewDidLoad
méthode. Cependant, il semble que dans cette méthode, le point de vue de la hauteur actuelle est 460px (self.view.bounds.size.height
). Donc, lors de la configuration de mon sous-vues, je ne peux pas calculer correctement les tailles de quoi que ce soit.
Au sein de l' viewWillAppear:
méthode, le point de vue ne sais que c'est la bonne taille, mais cela signifierait cadre et de calcul de la sous-vue de la cadres de tous les temps, la vue s'affiche (par exemple, l'onglet des changements ou des pans de vue d'enfant contrôleurs de la navigation de la pile.
Est la seule façon de le faire correctement à disposition en viewWillAppear:
?
J'ai essayé d'utiliser le d'un redimensionnement automatique des propriétés (parent autoresizesSubviews
& autoresizingMask
), mais ils ne semblent pas du tout!? Ces ne prendra effet qu'une fois que le point de vue est tout de configuration et puis c'est redimensionnée (manuellement / changement d'orientation?).
Je serais reconnaissant si quelqu'un pourrait me permettre de savoir pourquoi la d'un redimensionnement automatique ne fonctionne pas, et la meilleure façon de jeter les choses par ne pas coder en dur toutes les tailles.