3

すべて、
画面の向きをロックしたときに、[[UIDevice currentDevice] orientation]を使用して画面の向きを取得したいのですが、常にUIDeviceOrientationPortraitを返すので、問題は実際のデバイスの向きを取得する方法です。
どうもありがとうございます。

4

4 に答える 4

0

シミュレーターでテストしている場合、シミュレーターは正確な向きの値を返すのが苦手であることに注意してください。デバイスでテストします。

于 2011-06-23T05:21:49.673 に答える
0

ドキュメントに従って、最初に方向通知の生成をオンにする必要があります。

電話する必要があります:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 

次に、デバイスの向きを確認できます。バッテリーを節約するために、方向の取得が完了したことをデバイスに伝える必要があります。これを行うには、次のように呼び出します。

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];

個人的には、ステータス バーの向きを使用したほうがうまくいきました。これは、デバイスの向きが「横向き」または「縦向き」にならない場合があるためです (たとえば、デバイスが表面上で平らな場合)。

于 2011-06-23T05:22:18.210 に答える
0

別の解決策は、CoreMotion ライブラリから方向を検出することです。Portrait Orientation Lock: On 時のバグを修正します。その記事を参照してください: http://codrspace.com/yuvirajsinh/device-orientation-detection-using-coremotion/

于 2015-05-26T07:19:28.510 に答える
0

次の方法でオリエンテーション通知を有効にしていることを確認してください。

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

それでもうまくいかない場合は、ステータス バーを使用して現在の向きを確認することもできます (UI が回転している場合)。

[[UIApplication sharedApplication] statusBarOrientation];

于 2011-06-23T05:31:18.993 に答える