“支持界面定位”是否有先例?
问题描述:
我正在开发一个应用程序,我想要一个屏幕自动旋转到横向。“支持界面定位”是否有先例?
这将是应用程序中唯一的旋转屏幕。
我试图找到这样做的最简单的方法。
如果我在构建摘要页面(即使用切换按钮)中设置支持的方向,以便它只是纵向。那么我可以在代码中覆盖我想要自动旋转的屏幕吗?
或者我必须这样做吗?即支持所有的方向,然后禁用所有我不想旋转的屏幕?
感谢
答
还是我必须要全面做它的其他方式?即支持所有的方向,然后禁用所有我不想旋转的屏幕?
是。您必须列出Info.plist 全部您将支持的方向。然后用supportedInterfaceOrientations
限制特定的视图控制器方向。必须呈现您的一个景观视图控制器,即使用“模态”轮播或致电presentViewController:animated:
。
这里我的回答可能是有用的:
https://*.com/a/13755923/341994
和我的答案在这里:
答
添加观察员要旋转这样的观点的viewDidLoad方法:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:[UIDevice currentDevice]];
然后设置根据要更改内部的orientationChanged方法这样的视图的视图:
- (void) orientationChanged:(NSNotification *)note{
UIDevice * device = [UIDevice currentDevice];
switch(device.orientation)
{
case UIDeviceOrientationPortrait:
break;
case UIDeviceOrientationPortraitUpsideDown:
break;
case UIDeviceOrientationLandscapeLeft:
break;
case UIDeviceOrientationLandscapeRight:
break;
default:
break;
};
}
答
在iOS 6中,应用程序支持的取向(在Info.plist
说明)作逻辑与运算的顶视图控制器支持的方向,所以为了完成你想要的任务,你需要在Info.plist
中声明对每个方向的支持,然后在你不想旋转的视图控制器中覆盖supportedOrientations:
方法,例如:
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
如果只有一个视图控制器,它们是否相同? – 2016-03-10 18:36:24