2

J'essaie de faire redimensionner automatiquement UIScrollView et d'apparaître correctement en mode paysage. Le mode portrait fonctionne bien. Voici mon code:Problème de taille d'image UIScrollView en mode paysage

- (void)viewDidLoad { 
[super viewDidLoad]; 

//=== load all the custom view 
NSMutableArray *controllers = [[NSMutableArray alloc] init]; 

int page = 0; 
[controllers addObject:[self loadScrollView:[[Page1ViewController alloc] initWithNibName:@"Page1ViewController" bundle:nil] withPage:page++]]; 
[controllers addObject:[self loadScrollView:[[Page2ViewController alloc] initWithNibName:@"Page2ViewController" bundle:nil] withPage:page++]]; 
[controllers addObject:[self loadScrollView:[[Page3ViewController alloc] initWithNibName:@"Page3ViewController" bundle:nil] withPage:page++]]; 

self.viewControllers = controllers; 
[controllers release]; 
//=== automaticaly define number of pages 
_numberOfPages = [self.viewControllers count]; 

// a page is the width of the scroll view 
scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
scrollView.pagingEnabled = YES; 
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * _numberOfPages, scrollView.frame.size.height); 
scrollView.showsHorizontalScrollIndicator = NO; 
scrollView.showsVerticalScrollIndicator = NO; 
scrollView.scrollsToTop = NO; 
scrollView.delegate = self; 

// First, set the number of pages 
pageControl.numberOfPages = _numberOfPages; 
pageControl.currentPage = 0; 

}

Ensuite, je suis allé dans chaque contrôleur de vue fichier nib et définissez l'arrière-plan de couleur différente pour tester si elle fonctionne. Malheureusement, en mode Paysage, la largeur et la hauteur restent les mêmes qu'en mode portrait.

Je ne sais pas comment résoudre ce problème. J'espère que n'importe qui peut m'aider. Merci beaucoup d'avance.

Répondre

3

J'ai le même problème, mais seulement si j'ouvre la vue dans le paysage, quand il a été conçu dans le fichier .xib dans Portrait.

Si j'ouvre en mode portrait, faites pivoter l'appareil, il est correctement dimensionné.

J'ai constaté que si je charge mon tableau de contrôleurs de vue dans viewWillAppear, plutôt que dans viewDidLoad, il se taille correctement tout le temps.