Voir une bande blanche au bas de l'écran, tout en ajoutant vue de la fenêtre par programmation dans l'iPhone?

StackOverflow https://stackoverflow.com/questions/1458061

Question

Quand je développé une vue projet basé dans Xcode, Mon point de vue fonctionne très bien. Mais quand j'utilise un projet à base de fenêtre et créer une vue moi-même et essayer d'ajouter comme une sous-vue à la fenêtre, il me donne une bande blanche au fond. Je ne ai jamais fait face à ce problème avant, mais qui lui fait face première fois.

Était-ce utile?

La solution

Très probablement ce qui se passe est que vous ajoutez une vue taille appropriée pour l'utilisation d'une barre d'état à la fenêtre, dont la taille comprend la barre d'état.

L'écran de l'iPhone est 480px de haut, et la partie supérieure de 20px qui sont attribuées pour la barre d'état de l'appareil (l'une avec l'intensité du signal / indicateur WiFi, une horloge, etc.). Normalement, une vue sera de taille pour le reste 460px de la fenêtre, et si vous développez une application basée vue, qui est bien -. Ce modèle d'application fournit déjà une vue racine 320x460 que tous vos autres sous-vues sont ajoutés à

Mais puisque vous ajoutez à la fenêtre, qui couvre tous les 480px de l'écran, je suppose que votre point de vue est juste 20px trop court. Essayez de changer la hauteur de la vue, ou la mise en son décalage y.

Autres conseils

vous shoud toujours définir la taille de la vue en obtenant la résolution de UIScreen

UIView *controllersView = [myViewController view]; // get the view
[controllersView setFrame:[[UIScreen mainScreen]applicationFrame]]; // set the Framesize

Ceci définit automatiquement l'origine de x = 0 et y = 20. Gardez à l'esprit que vous devez utiliser cette méthode au lieu de régler manuellement l'origine à y = 20 parce que la résolution de l'écran peut changer car il sera avec le nouvel iPhone 4.

La chose drôle est que même HelloWorld d'Apple exemple pour l'iPhone a obtenu le bug 20 pixels sans régler correctement le cadre de vues.

Dans le cas où quelqu'un a besoin de savoir, le code pour compenser l'origine ressemblerait à quelque chose comme ceci:

CGRect frame = myController.view.frame;
frame.origin.y = 20.0;
myController.view.frame = frame;

Si vous utilisez constructeur d'interface, vous pouvez cliquer sur la vue, allez à attribuer l'inspecteur et changer barre d'état sans pareil. Ensuite, vous avez simplement besoin d'ajuster la hauteur de la vue dans l'inspecteur de la taille 480.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top