2010-08-27 4 views
0

Je rencontre un problème lorsque certaines de mes vues semblent incorrectes sur le chargement de l'application jusqu'à ce que vous le faites pivoter, et d'autres semblent correctes après la charge mais incorrectes après la rotation.Application MonoTouch - Problèmes de mise en page avec rotation

J'ai une fenêtre qui se charge avec la vue A et après un appui sur un bouton, détache la vue A de la fenêtre (RemoveFromSuperView) et charge View B et l'ajoute à la fenêtre.

Vue A - A des espaces blancs en bas de la hauteur de la barre d'état, qui est fixée lors de la rotation de l'appareil.

Vue B - semble correcte en charge, mais a une partie du fond haché après la rotation du périphérique.

Qu'est-ce qui causerait ce comportement étrange? Si je visualise mes fichiers XIB depuis Interface Builder via File-> Simulate Interface, ils fonctionnent correctement. Mais ils ne fonctionnent pas à partir de mon application, la même chose se produit sur l'appareil réel aussi. PS - Je ne pense pas avoir de code personnalisé qui pourrait causer cela, je viens de créer des vues A et B dans IB et les ai connectées à des contrôleurs sous-classifiés afin que je puisse surcharger ShouldAutorotateToInterfaceOrientation.

Répondre

0

C'était parce que mes contrôleurs de vue étaient créés à partir du code.

Je suis passé à mes contrôleurs étant créés à partir de fichiers XIB, apparemment ils sont redimensionnés correctement et prennent en compte la barre d'état lors de cette opération.

J'ai également dû vérifier "Resize View From NIB" a été vérifié dans Interface Builder avec le nom NIB enfant approprié présent. Vous pouvez ignorer cette étape si votre contrôleur n'est pas installé dans un deuxième fichier XIB.

+0

Une autre situation que j'ai trouvée se produire est quand la vue d'un TabBarController est une sous-vue d'un autre contrôleur. Pour remédier au problème, j'ai défini la propriété View du contrôleur parent sur la vue de TabBarController. Cela semble hackish pour ce que j'essayais de faire, mais je ne pouvais pas trouver un autre moyen de le réparer. – jonathanpeppers

Questions connexes