2011-01-27 3 views
2

Quelque chose de vraiment bizarre ça m'arrive (au moins bizarre pour moi) J'ai un contrôleur de vue (fileManagerViewController) l'interface utilisateur de ceci est essentiellement une vue vide avec une barre d'outils sur le dessus . J'ai fait cette interface avec IB. sur la barre d'outils j'ai quelques boutons, deux de ces boutons sont utilisés pour basculer entre deux vues. L'interface utilisateur pour les deux vues que je dois changer a été faite par le code.iOS - UIView Ne pas redimensionner en paysage

  • A l'intérieur du viewDidLoad de FileManagerViewController J'ai écrit ce

-(void) viewDidLoad { 
    [super viewDidLoad]; 
    fileManagerTableView = [[FileManagerTableView alloc] init]; 
    fileManagerGridView = [[FileManagerGridView alloc] init]; 
    self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight 
           |UIViewAutoresizingFlexibleWidth; 
    self.view.autoresizesSubviews=YES; 
    self.view addSubview:fileManagerTableView.view]; 
    [self.view addSubview:fileManagerGridView.view]; 
    [fileManagerTableView.view setHidden:YES]; 
} 
  • ce sont les deux méthodes de loadview

    -(void) loadView { 
     CGRect fileGridViewFrame = CGRectMake(0.0, 50.0, 1024,768); 
fileGridView = [[[AQGridView alloc] 
           initWithFrame:fileGridViewFrame] 
           autorelease]; 

fileGridView.dataSource=self; 
fileGridView.delegate=self; 
fileGridView.autoresizingMask=UIViewAutoresizingFlexibleWidth| 
             UIViewAutoresizingFlexibleHeight 
fileGridView.autoresizesSubviews=YES; 
fileGridView.bounces; 
fileGridView.backgroundColor = [[UIColor colorWithPatternImage: 
             [UIImage imageNamed:@"bg.png"]]]; 
[self.fileGridView reloadData]; 
self.view = fileGridView; 
} 

    -(void) loadView { 
     CGRect fileTableViewFrame = CGRectMake(0.0, 44.0, 1024,768); 
fileGridView = [[[UITableView alloc] 
           initWithFrame:fileTableViewFrame] 
           autorelease]; 

fileGridView.dataSource=self; 
fileGridView.delegate=self; 
fileGridView.autoresizingMask=UIViewAutoresizingFlexibleWidth| 
             UIViewAutoresizingFlexibleHeight 
fileGridView.autoresizesSubviews=YES; 
fileGridView.bounces; 
fileGridView.backgroundColor = [[UIColor colorWithPatternImage: 
             [UIImage imageNamed:@"bg.png"]]]; 
[self.fileGridView reloadData]; 
self.view = fileGridView; 
} 

le résultat est, comme je sai d bizarre, si l'application démarre en mode portrait tout fonctionne comme je l'espère les deux vues sont bien rendus en mode portrait et paysage. Si l'application est démarrée avec l'appareil en orientation paysage, les vues ne remplissent pas tout l'écran. Jetez un coup d'oeil à ce screenshot

Répondre

0

À l'intérieur de IB, dans les contrôles de disposition, jouez avec les contrôles de redimensionnement. Pour accéder à ces contrôles, ouvrez le troisième onglet dans l'inspecteur (Cmd + 3)

De même, à l'intérieur de votre méthode viewWillAppear, appelez setNeedsDisplay sur votre vue.

+0

Qu'entendez-vous par "jeu"? le seul fichier nib que j'ai n'a qu'une seule vue vide avec une barre d'outils, le contrôleur agit comme un conteneur pour mes sous-vues que j'ajoute par code –

+0

Essayez différentes configurations. Je suis sur iPhone maintenant. Je vais essayer d'obtenir plus d'informations quand je serai sur un ordinateur plus tard. – Moshe

+0

en collaboration avec IB n'a donné aucun résultat. Les sous-vues ne sont pas redimensionnées correctement. J'ai essayé d'augmenter la hauteur des vues dans la méthode loadView, et l'écart a disparu. Mais cela n'a aucun sens pour moi. –

Questions connexes