我的iPhone应用程序中有一种非常奇怪的行为。
该应用应以任何方向运行。 Plist键已全部设置,shouldAutorotateToInterfaceOrientation
始终返回YES
。
此外,它是一款仅限iPhone的应用程序,但目前我只能在iPad上进行测试。
现在,当我以纵向模式启动时,一切正常。但是,如果它以横向模式启动,则视图不会接收任何触摸输入,按钮和手势根本不起作用。只要窗口保持不变,就会发生这种情况。如果我旋转应用程序,然后将其旋转回横向,则可以正常工作。此外,如果我按下iPad上的“2x”按钮,该应用程序也会开始正常工作。
我已经检查了所有视图框架并且所有内容都已正确绘制。
在模拟器中运行时,它会忽略初始方向并以纵向模式绘制。
可能是什么原因以及如何解决?
答案 0 :(得分:4)
我发现这是iOS 6所独有的(你会在运行iOS 6甚至iOS 6 iPad模拟器的iPad上看到这个,但不会运行运行iOS 5的设备/模拟器)。如果删除应用程序plist中“支持的界面方向”下的所有条目,则此问题似乎消失了。或者,如果在目标设置的“摘要”屏幕上选中“状态栏”设置中的“在应用程序启动期间隐藏”选项,则还会修复它:
为什么这些中的任何一个都应该修复bug是没有意义的,但它们似乎是。
如果使用“支持的方向”调整,在iOS 6中,您仍然可以通过supportedInterfaceOrientations
以编程方式控制允许的界面方向(在iOS 5中,您仍然可以使用shouldAutorotateToInterfaceOrientation:
)。