我想创建一个不使用纵向模式的应用程序。
我不确定是否需要编辑plist或者除了plist之外还有代码
答案 0 :(得分:47)
以横向模式启动
iPhone OS中的应用程序正常 以纵向模式启动以匹配 主屏幕的方向。如果你 有一个运行在两者中的应用程序 肖像和风景模式,你的 应用程序应始终启动 肖像模式最初然后让 它的视图控制器旋转 根据需要界面 设备的方向。如果你的 应用程序以横向模式运行 但是,你必须执行 以下步骤使其在a中启动 最初的风景定位。
在应用程序的Info.plist文件中,添加
UIInterfaceOrientation
键并将其值设置为
景观模式。对于景观
方向,你可以设置值
这个关键是什么UIInterfaceOrientationLandscapeLeft
或
UIInterfaceOrientationLandscapeRight.
以横向模式布置您的观点,并确保他们的观点 自动调整选项已设置 正确。
覆盖视图控制器的
shouldAutorotateToInterfaceOrientation:
方法,仅对于
返回YES 期望的景观方向和没有 用于纵向方向。
答案 1 :(得分:29)
要使您的应用横向模式仅,您应使用“支持的界面方向”。
(Targets -> YourApp -> Supported Interface Orientations -> Landscape Left & Right
)
您还应该在Info.plist
键上添加值Supported interface orientations
和Landscape (left home button)
,从而在应用的Landscape (right home button)
文件()中设置应用的方向。
您可以使用willRotateToInterfaceOrientation
和/或didRotateFromInterfaceOrientation
来处理方向更改。
shouldAutorotateToInterfaceOrientation
已弃用 iOS 6 而已弃用。
为UIDeviceOrientationLandscapeLeft/Right
返回shouldAutorotateToInterfaceOrientation
会使您的应用“风景”:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
也可能更改您应用的Info.plist
和View Orientation
(如上所述)。
此外,我建议您将视图的方向更改为属性检查器中的Landscape
。
答案 2 :(得分:26)
您也可以将其全部缩短为
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
答案 3 :(得分:10)
编辑plist以仅支持横向,然后确保在每个uiviewcontroller / uitabbar等中shouldAutoRotateToInterfaceOrientation
,return
说return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
。