【问题标题】:Launch iPhone App in iPad with landscape mode在 iPad 上以横向模式启动 iPhone 应用程序
【发布时间】:2013-02-26 14:47:31
【问题描述】:

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

飞溅景观:

rootview-风景:

我期望的外观应该与 iPad 的纵向模式相同:

飞溅肖像:

rootview-纵向:

rootView为MyNavigationController,相关代码如下:

MyNavigationController.m

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

- (NSUInteger)supportedInterfaceOrientations {
  return UIInterfaceOrientationMaskPortrait;
}

- (BOOL)shouldAutorotate {
  return NO;
}

【问题讨论】:

  • 我不太明白您要做什么?您希望该应用如何与 iPad 配合使用?

标签: ios ipad orientation splash-screen


【解决方案1】:

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

- (BOOL)shouldAutorotate {
   return YES;
}

- (NSUInteger)supportedInterfaceOrientations {
   return UIInterfaceOrientationMaskPortrait;
}

shouldAutorotate 返回YES 可能看起来很奇怪。事实是,如果您确实返回NO,则根本不会调用supportedInterfaceOrientations,并且您的项目设置将成为规则。您也可以删除shouldAutorotate,它应该可以正常工作。

Reference:

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

【讨论】:

    【解决方案2】:

    您的意思是显示横向启动屏幕,然后在应用中仍使用纵向模式?

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

    在“提供特定于设备的启动图像”部分查看文档here

    【讨论】:

    • 没有。我知道那里的 iPhone 应用程序不支持横向启动图像。我想要的是当我的 iPhone 应用程序在 iPad 上以横向模式运行时,其性能与我在 iPhone 上以横向模式运行时相同。
    • 那么当 ipad 处于横向模式时,您希望应用的启动画面变成横向模式吗?
    • 没有。我希望应用的初始视图是纵向的。
    • 这可能会有所帮助stackoverflow.com/questions/5140600/…
    【解决方案3】:

    我猜你想要的是将状态栏也设为纵向。不幸的是,没有简单的方法可以做到这一点——您可以将设备/界面方向设置为仅纵向,但它适用于整个应用程序。您需要自己处理所有视图的方向。所以,我建议你关注Hide status bar on launch image,隐藏你的状态栏,并在两个方向使用相同的图像。它会使启动画面看起来更好。

    【讨论】:

      猜你喜欢
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      相关资源
      最近更新 更多