2011-06-23 2 views
3

Tous,
Quand je fermai l'orientation de l'écran, je veux utiliser [orientation [UIDevice currentDevice]] pour obtenir l'orientation de l'écran, mais toujours retourner UIDeviceOrientationPortrait, donc, la question est de savoir comment puis-je obtenir l'orientation du dispositif réel .
merci beaucoup.Comment puis-je obtenir l'orientation réelle du périphérique?

+0

Avez-vous testé ceci sur un simulateur ou un appareil? Je crois que cela donnera le résultat exact sur le vrai appareil seulement. –

+0

Oui, je le tester sur l'appareil –

+0

Passez par ce lien http://stackoverflow.com/questions/930075/uidevice-orientation –

Répondre

0

Si vous testez dans le simulateur alors soyez conscient que le simulateur est terrible à retourner des valeurs d'orientation précises. Testez sur un appareil.

+0

oui, je teste sur mon iphone4, mais le résultat est le même qu'avant. –

0

Vous devez d'abord activer la génération de notifications d'orientation, conformément à the documentation.

Vous devez appeler:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 

Alors vous pouvez vérifier l'orientation de l'appareil. Vous devez indiquer à l'appareil que vous avez terminé l'orientation, afin d'économiser la batterie. Vous le faire en appelant:

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]; 

Personnellement, j'ai eu plus de chance avec using the status bar's orientation. C'est parce que parfois, (lorsque l'appareil est à plat sur une surface, par exemple) l'orientation de l'appareil ne sera pas "Paysage" ou "Portrait".

+0

[[UIDevice currentDevice] orientation] ne fonctionne pas si l'utilisateur a verrouillé l'orientation de son périphérique à partir du Springboard. l'orientation est toujours la dernière valeur, et il n'y a aucune notification pour les changements. – Jeff

0

Assurez-vous que vous activez les notifications d'orientation via:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

Si cela ne fonctionne toujours pas, vous pouvez également utiliser la barre d'état pour déterminer l'orientation actuelle (si votre interface utilisateur est en rotation) via:

[[UIApplication sharedApplication] statusBarOrientation];

Questions connexes