上面用在旋轉視圖控制器的幾個辦法,十分好用,其實還有少量的其他判別辦法,都不太靠譜
#import "OrientationViewController.h" @interface OrientationViewController () @property (nonatomic, assign) BOOL shouldRotate; @end @implementation OrientationViewController - (void)viewDidLoad { [super viewDidLoad]; /* IOS7 視圖進入的時分判別方向 */ if ([[[UIDevice currentDevice] systemVersion] floatValue] < 8) { switch ([UIDevice currentDevice].orientation) { case UIDeviceOrientationPortrait: { NSLog(@"Portrait !!!"); break; } case UIDeviceOrientationLandscapeLeft: case UIDeviceOrientationLandscapeRight: { NSLog(@"Landspace !!!"); break; } default: NSLog(@"Unkown !!!"); break; } } } - (void)configureNotificaiton { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarOrientationChange:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil]; } - (void)statusBarOrientationChange:(NSNotification *)notification { /* 配合這個辦法,用在更新界面,控制先後 */ } #pragma mark - UIViewController (UIViewControllerRotation). - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration]; } - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { [super didRotateFromInterfaceOrientation:fromInterfaceOrientation]; if ([[[UIDevice currentDevice] systemVersion] floatValue] < 8) { switch ([UIDevice currentDevice].orientation) { case UIDeviceOrientationPortrait: { NSLog(@"Portrait !!!"); break; } case UIDeviceOrientationLandscapeLeft: case UIDeviceOrientationLandscapeRight: { NSLog(@"Landspace !!!"); break; } default: NSLog(@"Unkown !!!"); break; } } else { /* IOS8 以上的處置 */ } } #pragma mark - Orientation Handler. - (BOOL)shouldAutorotate { if (self.shouldRotate) return YES; else return NO; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { if (self.shouldRotate) return YES; else return NO; } - (UIInterfaceOrientationMask)supportedInterfaceOrientations { if (!self.shouldRotate) { return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown; } return UIInterfaceOrientationMaskAll; } @end
【Orientation】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!