【问题标题】:My iPad landscape splash screen jumps to portrait我的 iPad 横向闪屏跳转到纵向
【发布时间】:2013-03-23 21:42:53
【问题描述】:

我正在使用 Unity3D 和 Xcode 开发一个通用应用程序。 iPhone 版本完美无缺,而且它的方向是纵向的。启动画面在纵向模式下可以正常显示。

现在,我的 iPad 版本中的所有功能都可以正常工作,但启动画面除外。 iPad版本仅在横向模式下,因此会创建启动画面,但是...在iPad上运行时,启动画面开始正常,横向,但在某些时候,它会跳转到纵向模式?我不知道为什么并找到解决这个问题的地方。

有没有人遇到过同样的问题或知道去哪里找?

希望得到帮助并提前致谢。

【问题讨论】:

  • 你能发布一些相关的代码吗?编辑:如果您发布了您正在尝试使用的硬件和软件(iPad 版本和 iOS 版本),这也会有所帮助。
  • 我在 iPhone 4s 和 5 以及 iPad 2 上尝试这个
  • 又一次...删除了加速度计,仍然一样。这是跳转前的最后一条消息:-> applicationDidBecomeActive()

标签: ios ipad orientation unity3d


【解决方案1】:

Unity 在加载第一个场景时第二次显示启动画面(在此之前,iOS 显示启动画面)。查看 XCode 项目中的 SplashScreen.mm,您会看到一个专门用于此的类。一旦设置了视图控制器和视图,就会从 iPhone_View 类调用 ShowSplashScreen() 方法。

更新 Unity 版本(我认为是 4.x 更新之一)后,我遇到了类似的问题。我在我的 XCode 文件中进行了自定义(一些包括更改视图和覆盖闪屏内容)。因此,在构建我的 Unity 项目时,我总是只是“附加”到 XCode。为了解决这个问题,我不得不删除我现有的 XCode 项目,允许 unity 从头开始​​创建一个新项目,然后手动移植我的自定义。

【讨论】:

    【解决方案2】:

    使用它在主窗口上显示启动画面... 这会将图像旋转到横向模式

      splash = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, self.window.frame.size.height+255, self.window.frame.size.width)];
      splash.transform = CGAffineTransformMakeRotation(270* M_PI / 180.0);
    
    
      splash.image = [UIImage imageNamed:@"final"];
      [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:NO];
      [self.window addSubview:splash];
      [self.window makeKeyAndVisible];
    

    【讨论】:

      【解决方案3】:

      对于遇到此问题的任何人,我通过在 Info.plist 中添加以下行来解决此问题:

      <key>UISupportedInterfaceOrientations~ipad</key>
      <array>
          <string>UIInterfaceOrientationLandscapeRight</string>
          <string>UIInterfaceOrientationLandscapeLeft</string>
      </array>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多