-1

我有一种情况,我想为不同的方向(纵向和横向)调用单独的方法。

例如:

If (Orientation == Portrait)
{
  Some method a;
}

Elseif (Orientation == Landscape)
{
  Some method b;
}
4

5 回答 5

1

我曾经[[UIApplication sharedApplication] statusBarOrientation]知道方向。

然后我用这个方法

if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])) {
//Do something if landscape
} else {
//Do something in portrait
}

不要使用[[UIDevice currentDevice] orientation],因为如果设备放在桌子上,它就不能正常工作,例如。

于 2012-10-05T09:29:36.893 回答
1
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
    {
         // code for landscape orientation      
    }

    if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation))
    {
         // code for Portrait orientation       
    }

UIDeviceOrientationIsLandscape并且UIDeviceOrientationIsPortrait是宏的。

于 2012-10-05T09:30:11.120 回答
0
UIDeviceOrientation deviceOrientation = [[UIDevice currentDevice] orientation];
if(deviceOrientation == UIDeviceOrientationPortrait)
    ...
else  ...

枚举是UIDeviceOrientation[something]

于 2012-10-05T09:27:40.697 回答
0

试试这个:

UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];

if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight)

    {// perform ua operation for landscape mode

} 别的{

//纵向模式执行ua操作 };

于 2012-10-05T09:50:31.540 回答
0

目标-c:

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
    if (UIDevice.currentDevice.orientation == UIInterfaceOrientationPortrait) {
        printf("Portrait");
    } else {
        printf("Landscape");
    }
}
于 2020-05-12T15:46:00.010 回答