異なる方向 (ポートレートとランドスケープ) に対して別々のメソッドを呼び出したい状況があります。
例えば:
If (Orientation == Portrait)
{
Some method a;
}
Elseif (Orientation == Landscape)
{
Some method b;
}
異なる方向 (ポートレートとランドスケープ) に対して別々のメソッドを呼び出したい状況があります。
例えば:
If (Orientation == Portrait)
{
Some method a;
}
Elseif (Orientation == Landscape)
{
Some method b;
}
[[UIApplication sharedApplication] statusBarOrientation]
方向性がよくわかります。
それから私はこの方法を使用します
if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])) {
//Do something if landscape
} else {
//Do something in portrait
}
[[UIDevice currentDevice] orientation]
机の上などでは正常に動作しないため使用しないでください。
if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
{
// code for landscape orientation
}
if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation))
{
// code for Portrait orientation
}
UIDeviceOrientationIsLandscape
とUIDeviceOrientationIsPortrait
はマクロです。
これを試して:
UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight)
{// perform ua operation for landscape mode
} そうしないと{
//ポートレート モードの ua 操作を実行します };
UIDeviceOrientation deviceOrientation = [[UIDevice currentDevice] orientation];
if(deviceOrientation == UIDeviceOrientationPortrait)
...
else ...
列挙型はUIDeviceOrientation[something]
目的-c:
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
if (UIDevice.currentDevice.orientation == UIInterfaceOrientationPortrait) {
printf("Portrait");
} else {
printf("Landscape");
}
}