2010-07-21 10 views
1

J'essaie d'ajouter une sous-vue à ma fenêtre iphone et j'ai écrit le code suivant pour cela. Le problème est que lorsque la vue splash ou l'affichage du menu principal apparaît sur l'écran, il passe derrière la barre d'état. Je veux dire que la vue commence derrière la barre d'état. Les deux affichages se chevauchent également lorsque l'affichage du menu principal est affiché après la vue de démarrage. quelqu'un peut-il aider s'il vous plait? MerciIPhone - Vue se cache derrière la barre d'état

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
     [window addSubView: [[Resources getResources] getSplashView]]; 
     [vindow makeKeyAndVisible]; 
     [self performSelector:@selector(displayMainMenuView) withObject:nil afterDelay:2.0]; 
    } 


-(void) displayMainMenuView { 
     [window addSubView: [[Resources getResources] getMainMenuView]];` 
    } 
+0

Pouvez-vous poster le code qui init la vue, en particulier le code avec le cadre de la vue? – vodkhang

+0

En fait, je crée une application basée sur une fenêtre en utilisant des modèles de projet prédéfinis du xcode. Donc tout est par défaut. Je viens de changer les méthodes que j'ai citées plus tôt. – Aqueel

Répondre

2

Vous pouvez également régler simplement le cadre de votre menu principal comme:

mainMenuViewController.view.frame = CGRectMake(0.0f, 20.0f, 320.0f, 460.0f); 

Cette volonté faites votre point de vue juste en dessous de la barre d'état.

0

Définissez la propriété statusBarHidden OUI lorsque la vue de démarrage est affiché

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
     application.statusBarHidden = YES; 
     [window addSubView: [[Resources getResources] getSplashView]]; 
     [vindow makeKeyAndVisible]; 
     [self performSelector:@selector(displayMainMenuView) withObject:nil afterDelay:2.0]; 
    } 
+0

Salut Merci pour la réponse. La même chose se produit lorsque l'affichage du menu principal est affiché. Y at-il de toute façon que je peux faire afficher cette vue sous la barre d'état, pas derrière? Je travaille dans une application basée sur Windows. – Aqueel

+0

Si vous voulez que le statusBar soit toujours caché, placez le dans hidden dans tous vos fichiers .xib. Et ajoutez la propriété "La barre d'état est initialement masquée" définie sur OUI dans Info.plist. – MathieuF

+0

Non, je ne veux pas cacher la barre d'état. Je veux juste montrer la barre d'état et la vue devrait commencer au-dessous de la barre d'état. Je ne veux pas que ma vue commence derrière la barre d'état. – Aqueel

0

C'est ce qui se passe pour la vue racine. Au lieu d'utiliser la méthode addSubView, essayez de définir rootViewController de la fenêtre. Quelque chose comme ceci:

  • (void) applicationDidFinishLaunching: (UIApplication *) application { window.rootViewController = [[Ressources getResources] getSplashViewController]]; [vindow makeKeyAndVisible]; [self performSelector: @selector (displayMainMenuView) withObject: nil afterDelay: 2.0]; }

    - (void) {displayMainMenuView window.rootViewController = [[Ressources getResources] getMainMenuViewController]];
    }

S'il vous plaît noter que vous devez définir l'objet contrôleur, pas l'objet de la vue. Ainsi, vous auriez besoin de getters comme getMainMenuViewController dans votre cas.