1
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

私のコードは、デバイスが回転している間、このイベントを複数回取得します。参考のためにAppleのドキュメントを検索していますが、運が悪いようです。なぜこれが起こっているのか、誰かがヒントを提供できますか?

私のコードは Apple doc のサンプル コード ( AlternateViews ) で、一部のログを除いて変更はありません。

4

2 に答える 2

4

オリエンテーションに NO を返すと、YES を返すまで試行を続けます。たとえば、横向きの右に対して NO を返すと、横向きの左が試行される場合があります。すべて NO を返すと回転しません。また、このメソッドは、厳密に回転が発生したときではなく、任意の時点で呼び出すことができます。たとえば、新しいビューがナビゲーション コントローラーにポップされると、回転が発生していなくても、新しいビューがクエリされます。

于 2010-05-12T19:01:41.470 に答える
3

私はiPhonedevの初心者ですが、何度も呼ばれているのはshouldAutorotateToInterfaceOrientationイベントではないからだと思います。これは単に、オートローテーションがサポートされているかどうかに応じて、 aを取得しUIInterfaceOrientationて戻ることを意味します。YESNO

AppleのドキュメントUIInterfaceOrientationには、次のように定義されていることが示されています。

typedef enum {
   UIInterfaceOrientationPortrait           = UIDeviceOrientationPortrait,
   UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
   UIInterfaceOrientationLandscapeLeft      = UIDeviceOrientationLandscapeRight,
   UIInterfaceOrientationLandscapeRight     = UIDeviceOrientationLandscapeLeft
} UIInterfaceOrientation;

したがって、そのメソッドをオーバーライドすることになっているinterfaceOrientationのは、上記の1つ以上をチェックし、ビューがそれに自動回転する必要があるかどうかを示すものだけです。

于 2010-05-12T18:44:53.197 に答える