Tag: autolayout autorotate

如何以编程方式在iOS7中设置设备方向?

我正在使用一个iPad应用程序,使用自动布局,如果用户启用某种模式(“抬头”模式),我只想支持肖像(或肖像倒置)方向,此外,如果设备在风景,我想自动切换到肖像模式。 在顶视图控制器中,我有以下几点: – (NSUInteger) supportedInterfaceOrientations { if (self.modeHeadsUp) { return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown; } else { return UIInterfaceOrientationMaskAll; } } – (BOOL) shouldAutorotate { return TRUE; } 根据我在别处看到的答案,答案似乎是我应该使用“应用程序setStatusBarOrientation”。 因此,在用户select“抬头”模式的方法中,我包括: UIApplication *application = [UIApplication sharedApplication]; [application setStatusBarOrientation:UIInterfaceOrientationPortrait animated:YES]; 但是,这似乎并没有做任何事情。 虽然我可以物理移动设备,让它旋转成肖像,但它不会自动执行。 实际上,在运行上面的代码之后,在横向模式下尝试以编程方式设置方向时,使用以下代码查询应用程序“statusBarOrientation”时,横向将保持为“4”: UIApplication *application = [UIApplication sharedApplication]; int orientation = [application statusBarOrientation]; self.movesTextView.text = [NSString stringWithFormat:@"ORIENTATION %d", […]