我正在开发一款通用应用。 当我的设备是ipad我有2个设计:肖像和风景。
我使用此方法:-(void)orientationDidChanged:(NSNotification *)notification
旋转设备时效果很好。但是我有一个问题,当第一次加载视图时我没有旋转设备。 出于这个原因,我将此代码放在viewdidload中:
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){ //
something.
}
else if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
NSLog(@"IPAD ** ");
if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation)){
NSLog(@" vertical ** ");
}
if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)){
NSLog(@"Horizontal ** ");
}
}
我的问题是这样的:有时它可以工作,有时不工作:(。这个方法:orientationDidChanged,当开始工作时?只有当我旋转我的设备或立即使用viewDidLoad时,有必要再问一次我的方向那个方法?谢谢你的一些建议。
当我旋转设备时,我没有问题,它完美无缺:D ..我的问题是我最近运行应用程序但我还没有打开设备
答案 0 :(得分:0)
您可以使用:
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
if(orientation == 0) //Default orientation
//UI is in Default orientation (Portrait)
else if(orientation == UIInterfaceOrientationPortrait)
//UI is in Portrait orientation
else if(orientation == UIInterfaceOrientationLandscapeLeft)
//UI is in Landscape-left orientation
else if(orientation == UIInterfaceOrientationLandscapeRight)
//UI is in Landscape-right orientation