我在故事板中有5个视图。我希望每个视图方向都不同,例如,一个视图将UIInterfaceOrientationLandscapeRight
另一个视图将是UIInterfaceOrientationLandscapeLeft
或UIInterfaceOrientationPortrait
或UIInterfaceOrientationPortraitUpsideDown
。那么如何设置这种视图方向是不同的。
我用过
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];
但它显示警告'UIDevice可能无法响应setOrientation'。根据我正在使用的许多stackoverflow编写器
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
//return UIInterfaceOrientationLandscapeLeft;
return (toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);
}
以上代码,但它在我的项目中不起作用。那么屏幕方向的正确程序是什么? 提前谢谢。
答案 0 :(得分:2)
试试这个
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:YES];
您无法设置UIDeviceOrientation
,因为它是物理参数。如果您将设备保持在纵向 - 您如何以编程方式将其设置为横向?)。 UIDeviceOrientation
的意思是 - 设备方向,而不是接口。这个答案描述了方向之间的差异:
https://stackoverflow.com/a/3897243/194544
答案 1 :(得分:0)
您必须将-(BOOL)shouldAutorotateToInterfaceOrientation:
放入每个viewController并检查方向是否正确。如果你推动一个只支持例如的viewController。 upsideDown,它将被颠倒呈现。
注意:
答案 2 :(得分:0)
UIDevice上的orientation属性为只读。
您可以使用[UIViewController attemptRotationToDeviceOrientation];
尝试将所有视图控制器旋转到设备当前方向。您无法强制设置旋转。