在 iPad 上以横向启动后,iphone 应用程序没有响应
Posted
技术标签:
【中文标题】在 iPad 上以横向启动后,iphone 应用程序没有响应【英文标题】:iphone app doesn't respond after starting in landscape orientation on iPad 【发布时间】:2012-11-18 22:52:52 【问题描述】:我的 iPhone 应用在 iPad 上以横向模式启动时没有响应。
如果它以纵向模式启动,一切正常。在横向模式下,除非应用旋转或按下 1x 2x 按钮,否则无法正常工作。
我尝试使用断点调试应用程序并单步执行代码,但它显示应用程序在调试控制台中正常运行。
【问题讨论】:
除了“支持的界面方向”解决方法之外,Greg Hewgill 和我还发现在启动期间隐藏状态栏也可以解决问题。对我来说没有意义,但它们都有效。请参阅我的更新答案。 【参考方案1】:我发现这是 ios 6 设备所独有的,但如果您删除应用程序 plist 中“支持的界面方向”下的所有条目,这个问题就会消失。或者,如果您在目标设置的摘要屏幕上选中“状态栏”设置的“在应用程序启动期间隐藏”选项,这也可以修复它:
我认为这些选项中的任何一个都应该修复这个错误,但它们都可以。
如果您使用 iOS 6 中支持的方向设置,您仍然可以通过supportedInterfaceOrientations
以编程方式控制允许的界面方向(或者在 iOS 5 中,您仍然可以使用shouldAutorotateToInterfaceOrientation:
方法)。
【讨论】:
这似乎是 iOS 6 的错误,我已通过 bugreport.apple.com 报告。 这似乎有效。只需确保在 didFinishLaunchingWithOptions 中显示状态栏:[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
对“旋转”修复的一个警告——它似乎会导致画外音出现问题,而不是在初始启动时,而是切换和返回...画外音认为它处于纵向模式。我最终决定修复状态栏,因为我们的应用是为视力受损的人设计的,这将是一个重大问题。
顺便说一句,bugreport 承认问题的速度很慢(即使我清楚地解释了如何从空白模板项目中重现问题,也让我提交了示例项目......我从来没有做过与其他错误报告),但他们终于承认了这个问题。【参考方案2】:
似乎只需在 didFinishLaunchingWithOptions: 函数的开头添加 [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
就可以了。无需更改 plist 设置文件。
【讨论】:
+1。这对我有用,我认为这是一个更好的解决方案。当然更强大,尤其是因为您可以在此处发表评论,解释您做出该选择的原因。以上是关于在 iPad 上以横向启动后,iphone 应用程序没有响应的主要内容,如果未能解决你的问题,请参考以下文章
UIScreen applicationFrame 在横向应用程序启动时返回不正确的矩形 (iPhone/iPad)
支持 iPhone 6 和 iPhone 6+,针对 iPad 纵向和横向方向具有不同的启动/启动屏幕图像
在 iPad 上运行的 iPhone 应用程序中横向视图顶部的 20 像素间隙