2010-04-29 3 views
1

J'ai une vue en plein écran (768x1004), quand j'ajoute une sous-vue en plein écran à cette vue, elle est mal positionnée par la hauteur de la barre d'état (20 pixels). La vue sera donc coupée de 20 pixels en haut. Je ne peux pas comprendre pourquoi cela arrive. La seule façon de résoudre ce problème est de définir l'origine sur CGPointMake (0, 20) dans viewDidLoad.Les vues sont incorrectement positionnées par le montant de la barre d'état de l'iPad

J'ai le xib principal qui contient un contrôleur de vue (MainViewController) et une vue, la MainView. le mode plein écran n'est pas activé. Pourtant, il est encore mal positionné par la quantité de la barre d'état. Si je ne fais que déplacer 20 pixels, tout fonctionne bien, donc ce n'est pas un gros problème, mais c'est ennuyeux de savoir pourquoi cela se produirait.

+0

Avez-vous des sous-vues de redimensionnement activées? – willcodejavaforfood

+1

Pouvez-vous fournir plus d'informations? Comment ajoutez-vous la sous-vue? Voyons le code dans lequel vous ajoutez la sous-vue mal positionnée. – progrmr

Répondre

0

Votre vue en "plein écran" à (768x1004) n'est pas correcte (ou est-ce un type-o?) Qu'elle devrait être (768x1024). Cela peut expliquer votre problème de 20 pixels.

0

Assurez-vous que vous avez redimensionné subivews activé et que vous ancrez la sous-vue au bas du parent au lieu du haut. Facilement fait en IB, en désélectionnant le haut collant et en activant le bas.

+0

Cela n'a pas fonctionné. – DevDevDev

3

Si vous définissez la propriété wantsFullScreenLayout dans UIViewController, cela signifie que vous souhaitez utiliser le plein écran qui est 1024x768, pas 1004x768. Plein écran signifie y compris la barre d'état. Vous pouvez masquer la barre d'état et la zone située en dessous s'affichera. Assurez-vous que cette propriété est désactivée si vous souhaitez que votre contenu soit correctement dimensionné avec une barre d'état.

+0

Cela n'a pas fonctionné – DevDevDev

+0

Peut-être que c'est un bug dans le système d'exploitation alors. J'ai vu un bogue où je fais la mise en page en plein écran et si la rotation du périphérique change alors qu'une autre vue est présentée de manière modale, revenir à la vue d'origine provoque un mauvais positionnement des sous-vues. – lucius

+0

Qu'est-ce qui n'a pas fonctionné, en masquant la barre d'état? Ou il s'est caché, mais votre subview est toujours incorrectement positionné? – progrmr

0

J'ai eu le même problème sur un projet iPhone. C'était en quelque sorte lié à un bogue de constructeur Interface qui a brouillé ma vue xib. Je l'ai simplement restauré à partir de mon système de contrôle de version, réappliqué mes changements. Tout s'est bien passé la deuxième fois, pas de problèmes avec un décalage de position.

Si ce n'est pas une option, essayez de regarder votre xib manuellement (c'est un fichier xml) et vérifiez si vous pouvez voir quelque chose qui ne va pas. Gardez à l'esprit que l'iPad SDK est toujours en version bêta.

Questions connexes