iPhone UIViewController passe sous la barre de statut
J'ai un UIView
et un UIController
vue. Mon standard est un 320x460 vue. Dans applicationDidFinishLaunching
je fais:
[window addSubview:[controller view]];
La chose étrange est que la UIView
passe sous la barre d'état (comme il y a des manquants prise de courant). Cependant, si j'ai faites pivoter votre iPhone sur le côté, puis de nouveau, il se montre ok.
Est-ce un comportement attendu (je parie que je peux corriger par réglage de l'offset) ou suis-je en train de faire qch mal?
essayez simulé les éléments de l'interface?
J'ai activé simuated barre d'état de la fenêtre, le contrôleur et la vue - pas de chance... la Mise en page est endommagé lorsque l'application se lance dans l'iPhone ou de simulateur dans XCode. Cependant, il fonctionne très bien dans le Simulateur de InterfaceBuilder
J'ai activé simuated barre d'état de la fenêtre, le contrôleur et la vue - pas de chance... la Mise en page est endommagé lorsque l'application se lance dans l'iPhone ou de simulateur dans XCode. Cependant, il fonctionne très bien dans le Simulateur de InterfaceBuilder
OriginalL'auteur Mantas | 2009-12-09
Vous devez vous connecter pour publier un commentaire.
Je pense que votre problème est que lorsque vous ajoutez un affichage d'une fenêtre, vous devez être au courant de l'état de la barre d'état et de compenser pour cela:
c'est pourquoi l'IB vous montre un mannequin barre d'état.
Grande correction, mais la note de côté, 20 doit être le second paramètre à CGRectMake, pas le premier :).
OriginalL'auteur n3wscott
J'ai rencontré ce problème lors de l'affichage d'un UIViewController via presentModalViewController.
Vous pouvez la contourner par le redimensionnement manuel du contrôleur de vue après la vue est apparu:
app.statusBarFrame.taille.hauteur retourne 0. 🙁
Correction (sur ma remarque): [[UIApplication sharedApplication] statusBarFrame].taille.hauteur renvoie 0 si elle est exécutée avant que quelque chose comme: [[UIApplication sharedApplication] setStatusBarHidden:PAS de withAnimation:NON], Mais par la suite, il retourne 20. statusbarHeight = [[UIApplication sharedApplication] statusBarFrame].taille.hauteur; // statusbarHeight == 20
OriginalL'auteur Nick Baicoianu
- Je ajouter de cette question aujourd'hui. Il s'est avéré que j'avais "Veut Plein Écran" est cochée dans le ViewController Attribut de l'inspecteur.
Désactivation de la "Souhaite Plein Écran", a résolu le problème.
OriginalL'auteur user1626682
Enfin, je suis arrivé à cette solution. Fonctionne bien pour iPhone & iPad:
P. S. Pour une raison quelconque point de vue a la hauteur correcte:
480 (hauteur de l'écran de l'iPhone en mode Portrait) - 20 (barre d'état) = 460,
mais impossible de définir le décalage vertical. Il est assez étrange comportement, ressemble à un bug.
OriginalL'auteur Mike Keskinov
Correctifs à la fenêtre ne fonctionne pas pour moi que j'avais une vue modal. Un UIModalPresentationCurrentContext modal vue. OK, voici ce qui a fonctionné pour moi. J'ai été à la recherche sur le web en haut et en bas avant de se faire ce travail.
Je ne suis pas en mesure de déplacer la vue.image de la mère. Toutefois, dans le viewWillAppear je suis en mesure de le déplacer vers le bas:
OK, mise à jour de ma réponse.
OriginalL'auteur Jon Ramvi
Si vous utilisez l'Interface Builder "Simulé Éléments de l'Interface Utilisateur", puis vous devez également vous assurer que vous avez mis de l'indicateur "Redimensionner Vue De PLUME" dans votre MainWindow plume.
OriginalL'auteur ucangetit
Cela semble être un bug dans iOS 5. Une solution serait d'utiliser
wantsFullScreenLayout
quelle que soit la vue-contrôleur doit présenter modal et à la main mise de la vue toujours en dessous de la barre d'état.http://www.cocoanetics.com/2012/06/radar-view-frame-inconsistency-using-presentviewcontroller-wantsfullscreenlayout-yn/
http://openradar.appspot.com/radar?id=1758406
OriginalL'auteur markshiz
Êtes-vous de régler manuellement la barre d'application caché bien APRÈS l'ajout de la sous-vue? Je ne pense pas que ce soit le cas, mais si elle est définie sur none lorsque vous chargez d'abord la vue, il va la disposition, comme s'il n'en est pas une, et puis si vous réglez la barre d'état pour pas caché qu'il apparaîtra sur le dessus de votre point de vue.
Une solution possible est d'utiliser
[[controller view] setNeedsLayout];
après l'ajout de la sous-vue, ou éventuellement[window layoutSubviews];
. Je n'ai jamais eu beaucoup de succès à l'aide de ceux pour corriger les problèmes de mise en page, mais depuis il fonctionne après une rotation, il est vaut le coup.OriginalL'auteur Ian Henry
Même moi aussi eu le même problème. Lorsque nous sommes à l'aide de certains de codage pour dispositif d'orientation nous ont écrit certains de codage en application de délégué ou de notre point de vue contrôleur. Là, nous avons besoin de changer la condition d'utiliser l'orientation de retour OUI ou NON. Qui a résolu notre problème.
OriginalL'auteur SURESH SANKE
Je préfère utiliser UINavigationController pour envelopper le UIViewController vous, après cela, définissez la NavigationBarHidden à la UINavigationController. C'est une solution idéale cause UINavigationController faire gérer la hauteur de la barre d'état dans iOS 7.
Voici mon code et ma capture d'écran.
OriginalL'auteur Grant Fong
Xcode 6, iOS7/8 solution est de décocher la case "Sous les Barres du Haut" case à cocher dans les "Arêtes" de la section de l'Affichage de Contrôleur de la section des Attributs de l'Inspecteur.
OriginalL'auteur Paul Cezanne
Pour Xamarin.iOS:
OriginalL'auteur Umer Khalid Butt