2010-11-10 75 views
6

我用這個代碼:iPad的方向返回未知值

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];

拿到iPad的方向,但是當我使用OpenGL渲染返回UIDeviceOrientationUnknown。當我播放電影或顯示UIViews時,它會返回正確的值。你知道我怎麼才能得到正確的方向?我不想使用加速度計,因爲我想知道設備何時鎖定方向。

謝謝!

+0

你知道我怎樣才能得到鎖定方向按鈕的狀態? – Felics 2010-11-10 15:07:30

+0

不要打擾鎖定方向按鈕。這不再是iOS 4.2的一項功能。 – 2010-11-10 15:13:09

+0

@Evan:是的,它只是從硬件開關移動到軟件。從字面上閱讀iOS 4.2的任何評論。 – 2010-11-10 15:15:38

回答

0

如果我添加[的UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]。即使在OpenGL渲染模式下,方向也是正確的。有時會返回UIDeviceOrientationUnknown方向,但時間很短。

16

在某些情況下,加速度計無法準確讀取方向,例如設備保持平坦時。您應該仍然能夠使用來獲得當前的定位:

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 
+0

事件如果我把設備放在正常位置的方向是UIDeviceOrientationUnknown,但只有當我使用OpenGL渲染。我隱藏了狀態欄,它的方向始終是肖像。 – Felics 2010-11-10 15:23:45

+0

statusBar方向是無價的。謝謝! – Eugene 2014-06-20 10:05:20

+0

這種方法解決了我與「未知」的問題 – 2018-01-18 10:12:35