0

我正在尝试这个:

- (void)viewDidLoad {

    [super viewDidLoad];

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

        NSLog(@"PORTRAIT");

    } else {

        NSLog(@"LANDSCAPE");
    }
}

但似乎[[UIDevice currentDevice] orientation]返回 0,所以我不知道当时设备的方向。我怎么知道呢?

4

2 回答 2

1

我在用

UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication]statusBarOrientation]

这来自:

iOS 开发者库:响应可见视图控制器中的方向变化

窗口调整视图控制器视图的边界。这会导致视图对其子视图进行布局,从而触发视图控制器的 viewWillLayoutSubviews 方法。当此方法运行时,您可以查询应用程序对象的 statusBarOrientation 属性以确定当前的用户界面布局。

于 2013-01-11T14:42:31.197 回答
0

您可以像这样检查设备的方向

    if (UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation))
{
NSLog (@"Device is in Portrait Mode");
}
else
{
NSLog (@"Device is in Landscape Mode");
}
于 2013-01-11T13:35:42.240 回答