6

ステータスバーが回転するタイミングを知りたい。画面の回転通知を受信すると、「上向き」や「下向き」などの向きで問題が混乱する可能性があります。したがって、ステータス バーの向きに基づいて回転を管理するのが、最も簡単でクリーンな方法です。向きが変わったときに通知を受け取るにはどうすればよいですか?

4

2 に答える 2

12

UIApplicationDidChangeStatusBarOrientationNotification通知に登録する必要があります。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarOrientationChange:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];

- (void)statusBarOrientationChange:(NSNotification *)notification {
    UIInterfaceOrientation orient = [notification.userInfo[UIApplicationStatusBarOrientationUserInfoKey] integerValue];

    // handle the interface orientation as needed
}

このアプローチでは、インターフェイスの向きのみが処理されるため、デバイスの向きが「上向き」または「下向き」になることはありません。

于 2013-02-18T18:11:04.950 に答える
-1
//register to receive orientation notifications somewhere:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(detectOrientation) name:UIDeviceOrientationDidChangeNotification object:nil];


    -(void)detectOrientation{

        switch ([[UIDevice currentDevice] orientation]) {

            case UIDeviceOrientationFaceDown:{
            }
            break;

            default:{
            }
            break;

        }
    }

うまくいかない場合は、方向ロックを確認してください。それに何時間も無駄にしました。

于 2013-02-18T18:04:30.903 に答える