2010-06-09 6 views
1

Je la structure suivante Voir CONTRÔLEUR:chargement différent portrait/paysage UIViews

ScrollViewController LandscapeViewController PortraitViewController

Chacun avec sa propre .nib

L'application démarre en mode paysage où de nombreuses vues du paysage sont ajouté à un scrollview. Chaque vue de paysage a sa vue portrait spécifique, je dois donc attribuer comme ID à chacune de ces vues. Pouvez-vous me dire, comment je peux charger la vue portrait spécifique pour chaque vue de paysage lors de la rotation de l'appareil?

Dois-je faire deux vues de défilement? Un pour le paysage, un pour le portrait? Ou est-il possible de simplement faire défiler la vue déroulante du paysage et de charger un seul portrait avec le bon contenu basé sur un identifiant? Comment pourrais-je l'implémenter?

Les données proviennent d'une liste de propriétés.

Merci d'avance!

Répondre

2

Vous utilisez l'outil shouldAutorotateToInterfaceOrientation dans votre UIViewController pour fournir la fonctionnalité que vous recherchez. Dans l'exemple ci-dessous Je change le point de vue de correspondre aux changements d'orientation:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    if (UIInterfaceOrientationIsPortrait(interfaceOrientation)) { 
    /* Switch to the portrait view or do any other custom layout changes for current Orientation */ 
     self.view = portraitView; 
    } else if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) { 
    /* Switch to the landscape view or do any other custom layout changes for current Orientation */ 
     self.view = landscapeView; 
    } 
    return YES; 
} 

Dans votre cas, vous pouvez utiliser le shouldAutorotateToInterfaceOrientation pour redimensionner peut être votre point de vue ou de passer à leurs vues de portrait correspondants.

Espérons que ça aide.

Questions connexes