Определить ориентацию при загрузке вида
Я разрабатываю универсальное приложение. Когда у меня устройство 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 ** ");
}
}
У меня проблемы такие: иногда это работает, иногда нет:(. Этот метод: directionDidChanged, когда начать работать - только если я поворачиваю свое устройство или сразу с viewDidLoad, необходимо еще раз спросить ориентацию, когда у меня есть этот метод? Спасибо за несколько советов.
У меня нет проблем, когда я поворачиваю свое устройство, оно работает отлично: D.. Моя проблема, когда я недавно запустил приложение, и я не включил устройство
1 ответ
Вы можете использовать это:
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