-4

私のクラスのいくつかは、デバイスの向きが変わったときの通知を購読しています。それ以外の場合は、向きを直接確認しています

[[UIDevice currentDevice] orientation]

ほとんどの人が知っているように、iOS には次の向きがあります。

typedef enum {
   UIDeviceOrientationUnknown,
   UIDeviceOrientationPortrait,
   UIDeviceOrientationPortraitUpsideDown,
   UIDeviceOrientationLandscapeLeft,
   UIDeviceOrientationLandscapeRight,
   UIDeviceOrientationFaceUp,
   UIDeviceOrientationFaceDown
} UIDeviceOrientation;

FaceUp、FaceDown、および Unknown が報告されないようにするアプリケーション全体の方法はありますか? これらの向きの更新は 95% のアプリケーションで役に立たず、Unknown は 99.9% のアプリケーションで役に立たない.

現在、私はそれらの方向を無視しています (方向を直接確認するか、通知を受け取るかによって表示されます) が、特定の状況で迷惑になります.

とにかく、「役に立たない」向きが報告されるのを止める方法はないと思いますが、尋ねる価値があると思いました。私はおそらくそれらを処理し続ける必要がありますよね?

編集:
わかりました、Apple に同意しないことは、私がすでに受け取った反対票の数に基づいて明らかに罪です。

ただし、デバイスの向きが不明であるという通知を受け取ると、どのように役立つか説明してください。これは、通知をまったく受信しないこととどう違うのですか? デバイスの向きが「不明」であることを知ることは、通知が送信されない場合と比べてどのような場合に役立ちますか? 向きが不明であることを知っていても無駄ではない現実的な使用例がいくつかある場合は、役に立たないステートメントを撤回します。

4

1 に答える 1

4

彼らがそこにいるのには理由があります。Apple では、役に立たないものは作りません (Xcode を除く)。

メソッドを返さないように直接変更することはできませんが、無視することはできます。何が問題なのですか?

本当にイライラして UIDevice がこれらの値を返さないようにしたい場合は、iPhone/iPad- [UIDevice orientation]をジェイルブレイクし、MobileSubstrate を使用してフックすることができます。

于 2012-08-15T15:45:10.940 に答える