デバイスの現在の向きを知りたい。
if([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait)
{
}
しかし、このdoentは動作します
デバイスの現在の向きを知りたい。
if([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait)
{
}
しかし、このdoentは動作します
次のように、デバイスの向きの通知を有効にする必要があります。
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]
次に、現在の向きを照会できます
編集 :
ドキュメントから:「このプロパティの値は、呼び出しによって方向通知が有効にされていない限り、常に0を返しますbeginGeneratingDeviceOrientationNotifications
」(0はUIDeviceOrientationUnknown
)
わかった、
if (UIDeviceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation )) {
}
これは完璧に機能します。
の
[[UIDevice currentDevice] orientation]
のいずれかを返します
UIDeviceOrientationPortrait
UIDeviceOrientationPortraitUpsideDown
UIDeviceOrientationLandscapeLeft
UIDeviceOrientationLandscapeRight
定数。「垂直」か「水平」かを確認したいだけの場合は、上下逆か左右かに関係なく、次のように確認します。
if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]) {...}
向きの変化を検出したい場合は、
-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {}
また
-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {...}
メソッド。
これは役に立ちますか?
受け入れられた回答に記載されている解決策は私にとってはうまくいきました。
私のstmt 1は以下のロジックで実行されませんでしたが
myOrientation = [[UIApplication sharedApplication] statusBarOrientation];
if(myOrientation == UIInterfaceOrientationPortrait) ||
(myOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
// stmt 1;
}
これは私のために正しく機能します
if (UIDeviceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation ))
{
// stmt 1;
}