2011-06-23 38 views
3

所有,
當我鎖定屏幕方向,我想用[的UIDevice currentDevice]取向]得到屏幕的方向,但它總是返回UIDeviceOrientationPortrait,所以,問題是,我怎樣才能得到真正的設備的方向。
非常感謝。如何獲取真實設備的方向?

+0

你在模擬器或設備上測試過嗎?我相信這隻會在真實設備上給出準確的結果。 –

+0

是的,我在設備上測試 –

+0

通過此鏈接http://stackoverflow.com/questions/930075/uidevice-orientation –

回答

0

如果您正在模擬器中測試,那麼請注意模擬器在返回準確的方向值時非常糟糕。在設備上測試。

+0

是的,我測試了我的iphone4,但結果與以前一樣。 –

0

您需要先按照the documentation開啓定位通知生成。

你需要調用:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 

然後您可以檢查設備的方向。您需要告訴設備您已完成取向,以節省電池。您可以通過調用這樣做:

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]; 

就個人而言,我有更好的運氣與using the status bar's orientation。這是因爲有時(例如,當設備在表面上平坦時),設備方向將不是「橫向」或「縱向」。

+0

[[UIDevice currentDevice]方向]在用戶從Springboard鎖定設備方向時不起作用。方向始終是最後一個值,並且沒有更改通知。 – Jeff

0

確保您通過啓用定向通知:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

如果仍然不工作,你也可以使用狀態欄中找出當前方向(如果你的UI是旋轉)通過:

[[UIApplication sharedApplication] statusBarOrientation];

相關問題