0

デバイスの現在の向きを知りたい。

if([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait)
    {

    }

しかし、このdoentは動作します

4

4 に答える 4

2

次のように、デバイスの向きの通知を有効にする必要があります。

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]

次に、現在の向きを照会できます

編集 :

ドキュメントから:「このプロパティの値は、呼び出しによって方向通知が有効にされていない限り、常に0を返しますbeginGeneratingDeviceOrientationNotifications」(0はUIDeviceOrientationUnknown

于 2012-05-23T07:35:35.917 に答える
1

わかった、

if (UIDeviceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation )) {

}

これは完璧に機能します。

于 2012-05-24T13:04:09.957 に答える
0

[[UIDevice currentDevice] orientation]

のいずれかを返します

UIDeviceOrientationPortrait
UIDeviceOrientationPortraitUpsideDown
UIDeviceOrientationLandscapeLeft
UIDeviceOrientationLandscapeRight

定数。「垂直」か「水平」かを確認したいだけの場合は、上下逆か左右かに関係なく、次のように確認します。

if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]) {...}

向きの変化を検出したい場合は、

-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {}

また

-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {...}

メソッド。

これは役に立ちますか?

于 2012-05-23T07:38:46.023 に答える
0

受け入れられた回答に記載されている解決策は私にとってはうまくいきました。

私のstmt 1は以下のロジックで実行されませんでしたが

myOrientation = [[UIApplication sharedApplication] statusBarOrientation];
if(myOrientation == UIInterfaceOrientationPortrait) ||
    (myOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
    // stmt 1;
}

これは私のために正しく機能します

if (UIDeviceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation )) 
{
    // stmt 1;
}
于 2014-01-28T10:08:06.320 に答える