2014-09-16 6 views
1

Nous mettons à jour notre application de mise en page automatique pour soutenir nativement la résolution de l'iPhone 6. Nous avons ajouté l'image de lancement de l'iPhone 6 et la plupart des vues ont bien évolué.UIViewController, mise en page automatique et iPhone 6

Cependant, nous éprouvons un petit ennui: lors du chargement de nouveaux contrôleurs de vue, les vues ont la résolution de l'iPhone 5 sur la méthode viewDidLoad de UIViewController. La vue obtient uniquement la résolution de l'iPhone 6 lorsque vous cliquez sur viewWillAppear.

Pourquoi est-ce? Y at-il quelque chose que nous pouvons configurer ou modifier pour que les vues aient la résolution finale sur viewDidLoad déjà?

Répondre

2

Je pense que le bon endroit pour obtenir des données de géométrie de votre point de vue est dans la méthode:

- (void)viewDidLayoutSubviews; 

Ceci est appelé lors de la mise en page automatique se termine pose des vues. Veuillez vous méfier de cette méthode qui peut être appelée plusieurs fois, c'est-à-dire après une rotation de l'appareil.

EDIT

dans le générateur d'interface, il y a une option pour définir la taille pour les mesures simulées. Je ne suis pas sûr si cela doit faire seulement avec quel constructeur d'interface affiche, ou aussi avec le cadre de la vue au moment du chargement. Peut-être que vous pouvez le changer et essayer.

screenshot

+1

Cette réponse semble raisonnable. Merci! Je me demande toujours pourquoi toutes les vues pensent qu'elles ont une largeur de 320 points pendant 'viewDidLoad' ... Serait-ce un artefact sur le framework UIKit lui-même ou serait-ce parce que notre projet a été lancé avant la sortie de l'iPhone 6? Quoi qu'il en soit, si une meilleure réponse ne s'affiche pas, je l'accepterai. –

+0

@ RicardoSanchez-Sáez utilisez-vous xib's/nib's? –

+0

Oui, pas mal d'entre eux. –

Questions connexes