首页 文章

使用横向模式在iPad中启动iPhone App

提问于
浏览
5

在项目摘要中,“支持的界面方向”全部被选中,因为我的应用程序中有一个照片库视图,可以随设备一起旋转 . 其他观点仅限于肖像 . 目标设备是iPhone,所有东西在iPhone中都表现良好 . 但是当它在我的iPad上运行横向模式时,启动和rootView如下:

飞溅景观:
enter image description here

rootview-landscape:
enter image description here

我期望看起来应该与iPad是纵向模式相同:

飞溅肖像:
enter image description here

rootview-portrait:
enter image description here

rootView是 MyNavigationController ,一些相关的代码如下:

MyNavigationController.m

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
  return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (NSUInteger)supportedInterfaceOrientations {
  return UIInterfaceOrientationMaskPortrait;
}

- (BOOL)shouldAutorotate {
  return NO;
}

3 回答

  • 2

    请使用以下代码更正您的代码:

    - (BOOL)shouldAutorotate {
       return YES;
    }
    
    - (NSUInteger)supportedInterfaceOrientations {
       return UIInterfaceOrientationMaskPortrait;
    }
    

    shouldAutorotate 返回 YES 似乎很奇怪 . 事实是,如果你确实返回 NO ,那么根本不会调用 supportedInterfaceOrientations ,你的项目设置就会统治 . 你也可以删除 shouldAutorotate ,它应该工作相同 .

    Reference

    当用户更改设备方向时,系统会在根视图控制器或填充窗口的最顶层显示的视图控制器上调用此方法 . 如果视图控制器支持新方向,则窗口和视图控制器将旋转到新方向 . 仅当视图控制器的shouldAutorotate方法返回YES时才调用此方法 .

  • 2

    你的意思是通过显示风景启动屏幕,然后在应用程序仍然使用肖像模式?

    据我所知,仅限iPhone的应用程序无法在横向模式下启动,这意味着为仅限iPhone的应用程序提供横向启动屏幕是没用的 .

    检查"Providing Device-Specific Launch Images"部分的文档here .

  • 9

    我想你想要的是使状态栏也是肖像 . 遗憾的是,没有简单的方法 - 您可以将设备/界面方向设置为仅仅protrait,但它适用于整个应用程序 . 您需要自己处理所有视图的方向 . 因此,我建议您按照Hide status bar on launch image隐藏状态栏,并在两个方向使用相同的图像 . 它会使启动画面看起来更好 .

相关问题