2010-11-11 2 views
2

J'ai ce bug étrange dans mon application. Je fais une sous-vue et je la dessine au-dessus de ma vue principale. Pour m'en débarrasser, je le cacherais. Voici le problème: Là, je peux voir une partie de la vue en dessous du fond dans une ligne qui semble être de la même taille que la barre d'état. J'ai ajouté comment j'ajoute ma sous-vue ci-dessous, avec une capture d'écran pour illustrer mon problème.Sous-vue est montrant la vue principale sous

theLaunch = [[firstLaunch alloc] init]; 

[window addSubview:theLaunch.view]; // it goes on top 
[window makeKeyAndVisible]; 

Voici la capture d'écran ... la vue ci-dessous est grise. alt text

Répondre

3

Il semblerait que la sous-vue ne soit pas correctement ancrée. Si dans IB, vous pouvez essayer d'attacher la sous-vue au bord inférieur de la vue contenant. Votre «vue principale» semble s'étirer pour s'adapter à l'espace disponible (qui est modifié par la présence de la barre d'état), tandis que vous voyez «sous vue» être positionné (0,0). Quelque chose comme cela pourrait aider:

alt text

Programmatically, vous pouvez utiliser autoresizingMask de UIView. Quelque chose comme:

theLaunch.view.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin; 

Comment suis-je convaincu que c'est le vrai problème? Pas aussi confiant que je voudrais être.

+0

Modifier ces paramètres n'affecte pas le problème, je vais expérimenter autour et trouver le bon. Merci! –

+0

Juste ajouté ce que je pense est le bon réglage pour autoresizingMask. Vous devrez peut-être le modifier, cependant. – westsider

+0

En fait ce n'était pas le problème, quelque chose n'allait pas avec mon code. Mais merci d'aider! –

0

Où définissez-vous votre interface utilisateur pour firstLaunch? Si c'est dans un fichier nib, vous devez avoir theLaunch = [[firstLaunch alloc] initWithNibName:@"firstLaunch" bundle:nil];. Si vous ajoutez manuellement vos éléments d'interface; où fais-tu ça? Si vous les ajoutez manuellement dans ViewDidLoad, je pense que vous devriez le voir.

+0

Oui c'est dans une plume. Cependant, le changer en "initWithNibName" ne résout pas le problème. –

+0

Vous pouvez mettre à jour votre message avec le code initWithNibName. Définissez-vous la taille et le type de votre vue dans le fichier nib? – GendoIkari

0

Votre image a probablement une transparence alpha aux endroits où l'image ci-dessous apparaît. Si vous ne voulez pas cet effet, vous devez recréer l'image sans alphas (entièrement opaque). Si vous ne parvenez pas à recréer l'image pour une raison quelconque, vous pouvez essayer de définir la propriété opaque de la vue d'image sur OUI (je ne sais pas si cela fonctionnera) ou d'ajouter une autre vue sous votre l'image est opaque et a une couleur de fond solide qui n'est pas transparente.

Questions connexes