问题 ipad模拟器旋转


我在iPad模拟器上测试一个应用程序,我需要它在模拟器的位置启动我的应用程序,但每次运行应用程序时,模拟器都会旋转为纵向。

有没有办法阻止这种行为?

谢谢。

= = = =

上次编辑:我现在发现如果我在shouldAutorotateToInterfaceOrientation上返回NO,问题就会停止。但这是疯了,因为shouldAutorotateToInterfaceOrientation应该旋转界面以匹配iPad的位置,而不是相反。


11388
2018-05-05 03:16


起源



答案:


iPad支持多个启动图像(而不是iPhones singular default.png),因此可以在所有轮换中启动应用程序。 细节在这里

我猜你错过了新的(default-landscape.png等),这样当应用程序加载它时,它只能找到纵向加载屏幕,因此触发旋转(模拟器通过旋转到肖像来响应)。当你有 shouldAutorotateToInterfaceOrientation 返回 NO,它仍然找不到风景图像,但不允许旋转生效?


2
2018-05-05 11:37



我没有启动图像,应用程序很轻,看起来很快。问题是Apple报告当设备处于横向状态时启动应用程序时会出现错误。他们说应用程序以纵向方式发布。由于我住在欧洲,外国人开发人员显然被苹果忽视,我没有真正的设备可供测试。所以,我试图在模拟器上看到这个bug。然后我旋转模拟器并启动应用程序。模拟器立即回到肖像,非常烦人,特别是因为我没有设置任何方向。 - SpaceDog
这是一个.plist问题。如果UISupportedInterfaceOrientations的顺序不同,则设备将在启动时自动旋转到不同的方向。见休的回答。 - Paul Solt


答案:


iPad支持多个启动图像(而不是iPhones singular default.png),因此可以在所有轮换中启动应用程序。 细节在这里

我猜你错过了新的(default-landscape.png等),这样当应用程序加载它时,它只能找到纵向加载屏幕,因此触发旋转(模拟器通过旋转到肖像来响应)。当你有 shouldAutorotateToInterfaceOrientation 返回 NO,它仍然找不到风景图像,但不允许旋转生效?


2
2018-05-05 11:37



我没有启动图像,应用程序很轻,看起来很快。问题是Apple报告当设备处于横向状态时启动应用程序时会出现错误。他们说应用程序以纵向方式发布。由于我住在欧洲,外国人开发人员显然被苹果忽视,我没有真正的设备可供测试。所以,我试图在模拟器上看到这个bug。然后我旋转模拟器并启动应用程序。模拟器立即回到肖像,非常烦人,特别是因为我没有设置任何方向。 - SpaceDog
这是一个.plist问题。如果UISupportedInterfaceOrientations的顺序不同,则设备将在启动时自动旋转到不同的方向。见休的回答。 - Paul Solt


我在模拟器中运行GHUnit测试应用程序时遇到此问题。我通过添加它来修复它 info.plist 文件:

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

如果使用Xcode的plist编辑器进行编辑,请确保已打开“显示原始键/值”选项。


4
2017-09-28 11:54



好吧。这也解决了我的问题 - Kris Van Bael
问题是订单。如果您的UIInterfaceOrienationPortrait不是第一个,它将改变iPhone / iPad的初始方向。按下“信息项目设置”选项卡上打开/关闭方向的按钮,我遇到了这个问题。通过删除.plist中的方向设置,它以正确的顺序放回。 - Paul Solt


一旦放入横向,只要您不退出模拟器,SIM就会保留在横向中。你可以重新运行你的应用程序,它将从横向开始(好吧,除了 在内部,它最初是纵向的)。


1
2018-05-05 04:00



谢谢,但对我来说情况并非如此。我没有将应用程序设置为纵向,并且模拟器始终以纵向方式启动。即使我将应用程序设置为横向,也没有任何变化。它还在画像中。很讨厌。 - SpaceDog
我现在发现如果我在shouldAutorotateToInterfaceOrientation上返回NO,问题就会停止。但这是疯了,因为shouldAutorotateToInterfaceOrientation应该旋转界面以匹配iPad的位置,而不是相反。 - SpaceDog
不幸的是,什么也做不了。 iPad模拟器工作正常。 - Mugunth


之前没有尝试过...但是如果你通过添加更改.plist文件也许

<key>UIInterfaceOrientation</key> <string>UIInterfaceOrientationPortrait</string>

我知道它适用于iPhone。


1
2018-05-05 15:25



谢谢,但苹果公司正在努力为每个人设置一个特定的方向。您应该在应用程序启动时发现设备方向并相应地设置应用程序方向。这很漂亮,但只有一点问题,轻微一点,方向通知很糟糕,如果您旋转设备它们只检测方向,如果没有发生旋转,则不是设备所在的方向。更不用说通知需要时间来工作,你必须推迟你的应用程序,直到你有一个值得信赖的阅读.... - SpaceDog
......(继续)...即使使用加速度计来发现方向也不行,因为它也需要时间来获得可靠的读数。让我们也忘记了模拟器没有加速度计并在视图旋转时自行旋转的事实。一团糟。 - SpaceDog
嗯...问题出在真实的事情上吗? - user333593


只是为了确认,我同意你在迈克上面所说的一切,但你似乎可能从错误的角度来看待它。

iPad(根据苹果公司)的关键点之一是应用程序应该可以在任何方向上完全运行。如果你通过iPhone / iPod Touch充分利用额外的iPad用户界面阅读苹果专辑,那么它就会有很多细节。

如果您使用“cmd”+左/右箭头,您应该能够定向模拟器。这样,您就可以准确地模拟用户从您编码的错误方向启动应用时的体验。

我建议你反转你所做的代码修改(shouldAutorotateToInterfaceOrientation - NO)并编写你的应用程序以任何方向显示。如果您必须只编写一个代码,那么我怀疑用户将被迫旋转设备以纠正问题。

我知道你很想测试你的风景应用程序,但我不知道任何方式iPad模拟器可以被强制启动在没有你上面提到你的工作,这就像你已经建议失败的点。我怀疑你坚持使用“cmd”+“左/右”箭头。


1
2017-09-02 14:26





我想我已经拥有了!

如果你 关闭你的模拟器 (喜欢 CMD+Q),然后它始终以纵向模式启动。

但如果你 关闭你的应用程序 通过按模拟器上的主页按钮,它会记住下次启动应用程序时的最后一个方向。


1