2009-12-21 8 views
14

J'essaie de comprendre quelle orientation l'iphone a dans le simulateur et au lieu de me le donner en utilisant la propriété d'orientation UIDevice, je viens d'obtenir UIDeviceOrientationUnknown.UIDeviceOrientationUnknown en mode paysage

Cette propriété ne fonctionne-t-elle pas dans le simulateur? Quelle pourrait être la raison possible de cela?

J'utilise opengl es

+0

Est-ce un bug? –

Répondre

12

tout d'abord, de la documentation sur orientation propriété de l'instance UIDevice

La valeur de cette propriété renvoie toujours 0 à moins que les notifications d'orientation ont été activées en appelant beginGeneratingDeviceOrientationNotifications.

et oui, cela ne fonctionnera que sur le périphérique réel. mais vous pouvez utiliser, par exemple, this simulateur d'accéléromètre.

+0

Désolé mais non, cela ne fonctionne pas seulement sur le vrai périphérique. Je viens d'enregistrer une orientation de l'appareil paysage sur le simulateur, puis un portrait. Peut-être que ce n'était pas le cas avec les versions SDK précédentes ... (Je suis sur 3.1.3) Je suppose que nous pouvons utiliser - [UIApplication statusBarOrientation] pour déterminer l'orientation de l'interface actuelle (sauf si nous changeons manuellement l'orientation de la barre d'état). Et je ne suis pas sûr que cela fonctionnera avec une barre d'état cachée. – Unfalkster

+0

ne fonctionne pas également sur un iPad avec 4.2.1 – SpaceDog

+1

Cela fonctionne sur le simulateur, mais pas tout le temps. Utilisez [[UIApplication sharedApplication] statusBarOrientation], comme mentionné dans la réponse ci-dessous. –

44

Vous pouvez également utiliser:

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 

qui fonctionne même sans appeler beginGeneratingDeviceOrientationNotifications.

+0

Nice ça marche et m'a juste sauvé quelques maux de tête =) – Dave

+0

meilleure solution. J'ai trouvé le problème survenu dans iOS 6 et nouvel iPad. Vos astuces ont résolu mon problème. Grand merci –

+2

Glad iOS a cette alternative! – RyJ