0

我正在开发一个应用程序,我希望一个屏幕自动旋转为横向。

这将是应用程序中唯一的旋转屏幕。

我正在尝试找到最简单的方法。

如果我在构建摘要页面中设置支持的方向(即使用切换按钮),那么它只是纵向的。然后我可以在我想要自动旋转的屏幕的代码中覆盖它吗?

还是我必须反过来做?即支持所有方向,然后禁用所有我不想旋转的屏幕?

谢谢

4

3 回答 3

1

还是我必须反过来做?即支持所有方向,然后禁用所有我不想旋转的屏幕?

是的。您必须为 Info.plist 列出您将支持的所有方向。然后使用 . 限制特定的视图控制器方向supportedInterfaceOrientations。必须呈现您的一个横向视图控制器,即使用“模态”segue 或 call presentViewController:animated:

我在这里的回答可能有用:

https://stackoverflow.com/a/13755923/341994

我的回答在这里:

https://stackoverflow.com/a/15301322/341994

于 2013-05-04T16:19:28.603 回答
0

将观察者添加到要旋转的视图的 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;
  };
}
于 2013-05-04T16:20:38.400 回答
0

在 iOS 6 中,应用程序支持的方向(Info.plist在查看不希望发生旋转的控制器,例如:Info.plistsupportedOrientations:

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}
于 2013-05-04T16:25:59.990 回答