Voir une bande blanche au bas de l'écran, tout en ajoutant vue de la fenêtre par programmation dans l'iPhone?
-
12-09-2019 - |
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.
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.