2012-06-28 40 views
2

當設備坐在桌子上時,是否有任何方法可以區分橫向和縱向,即UIDeviceOrientationFaceUp?我有兩個不同的xib文件,我根據用戶拿着設備的方式進行切換。但是,當我將設備放在橫向位置時放置設備時出現問題。該設備保持橫向,但會加載肖像xib文件。如果在我的編碼中,我將UIDeviceOrientationFaceUp與橫向取向耦合在一起,那麼問題會相反:那麼我可以讓橫向視圖顯示設備仍處於縱向狀態。iOS Face Up Orientation問題

有什麼辦法可以弄清楚設備是否仍然顯示橫向或縱向?我試過檢查框架寬度,但它聲稱它是768,即使設備在橫向上平放。當設備變平時我不能強制一個方向,我聽說這是在App Store上拒絕的道路。

+0

重力不起作用。 ;) –

回答

1

你不能那樣做。當加速計放在桌子上時,加速計不能分辨出用戶坐在電話的哪一側。您可以使用陀螺儀(和指南針)測量圍繞其軸線的旋轉,但仍然不會告訴您用戶不幸在哪裏。

+1

是的。現在對我來說這很讓人頭疼,但我特別需要這兩種觀點,這真的會讓整個事情陷入困境。其他一切都完美無缺,只是這一個案例失敗了。我覺得很難相信沒有內置的東西,這不是一件頭痛的事情,只有一半人想要幫助區分,我確信我不是第一個遇到這種情況的人。 – ascendancy05

1

有一種方法來檢查它。

UIDeviceOrientation deviceOrientation = [[UIDevice currentDevice] orientation]; UIInterfaceOrientation statusBarOrientation =[UIApplication sharedApplication].statusBarOrientation; 使用第一個來檢查設備是否面朝上,第二個會告訴您設備是縱向還是橫向。