Ios 切换到Universal App后,SpriteKit场景无法在iPad上正确显示

Ios 切换到Universal App后,SpriteKit场景无法在iPad上正确显示,ios,objective-c,xcode,ipad,sprite-kit,Ios,Objective C,Xcode,Ipad,Sprite Kit,所以我在iPhone和iPad上都很好地渲染了我的SpriteKit游戏,但我注意到我看到了iPad上显示的状态栏。我去检查是否正确设置了状态栏,使其无法正确显示。经过一番搜索,我发现一篇帖子提到,在iOS7.1中,状态栏将显示在iPad上,除非您将其设置为通用应用程序。果不其然,我错误地将我的项目设置为iPhone应用程序。我把它换成了universal(并选择不为iPad创建单独的故事板)。在那之后,我的场景的分辨率没有在iPad上正确显示。该应用程序现在看起来更大了,并且离开了屏幕。我的主

所以我在iPhone和iPad上都很好地渲染了我的SpriteKit游戏,但我注意到我看到了iPad上显示的状态栏。我去检查是否正确设置了状态栏,使其无法正确显示。经过一番搜索,我发现一篇帖子提到,在iOS7.1中,状态栏将显示在iPad上,除非您将其设置为通用应用程序。果不其然,我错误地将我的项目设置为iPhone应用程序。我把它换成了universal(并选择不为iPad创建单独的故事板)。在那之后,我的场景的分辨率没有在iPad上正确显示。该应用程序现在看起来更大了,并且离开了屏幕。我的主精灵应该跟随我的手指移动,但现在它离我滑动的右侧很远了。我不确定当我把它切换到Universal时做了什么,但是现在把它切换回来并不能解决问题。它在所有iphone上的渲染效果都很好,只是不再在iPad上了。在视图控制器的viewDidLoad方法change
scene.scaleMode=SKSceneScaleModeAspectFill中,是否有其他人遇到此问题
scene.scaleMode=SKSceneScaleModeResizeFill

将这些字符串添加到info.plist文件中

Main storyboard file base name (iPhone)  yourStoryboard

Main storyboard file base name (iPad)    yourStoryboard

祝你好运

好的,所以我确实设法解决了我面临的问题。看起来是这样的,因为我最初是在iPad上以iPhone模式运行的,用户界面做出了一些对设备不正确的假设,然后我在代码中做了一些调整来弥补这一点。当我切换回通用模式,通过我的“调整”走出怪圈。我的缩放模式是SKSceneScaleModeAspectFit,现在仍然是,我相信在iPhone模式下运行时,基本上会在iPad上稍微切断我的左右两侧(它们是黑色的),我不明白为什么我不能填充这些黑色空间。现在我取消了我的调整并使用通用模式,一切都正常了。

只是尝试了一下,没有效果。我做了一些文件比较,看看实际发生了什么变化。在我的project.pbxproj文件中,有几个条目是在放入通用设置时创建的,它们都是针对\u DEVICE\u FAMILY=“1,2”;如果我删除所有这些条目,它在iPad上也能正常工作,但项目目标部署设置现在显示iPhone,状态栏又回到了iPad上。奇怪的是,在我想说它应该是通用的之前,它适用于iPad。将这两个条目添加到我的plist文件中没有任何效果,我想这是有道理的,因为该应用程序仍在工作,所以它以前引用过情节提要,但现在它在iPad上的缩放错误。这不是理想的解决方案,但如果我把它作为一个iPhone应用程序,它还能部署到应用商店的iPad上吗?如果你将view controller的大小更改为free Form呢?