关于如何实现对横向/纵向模式自动旋转进行适当处理的 iPhone 应用程序,这里存在很多困惑和一组相应的问题。当需要以横向模式启动时,实现这样的应用程序尤其困难。最常见的观察到的效果是混乱的布局和不再识别触摸的屏幕区域。
简单搜索标记的问题iphone
并landscape
揭示这些问题,这些问题在某些情况下会发生:
具有多个 nib 的仅横向 iPhone 应用程序:应用程序以横向模式启动,从第一个 nib 的视图呈现良好,从不同的 nib 加载的所有视图都无法正确显示。
Iphone Landscape 模式在加载新控制器时切换到 Portraite 模式:不言自明
iPhone:仅在横向中,在第一次 addSubview 之后,UITableViewController 无法正确旋转:与上述相同的问题。
iPhone Landscape-Only Utility-Template 应用程序:布局错误,控制器似乎无法识别应旋转的视图,但在横向模式下显示剪切的纵向视图,导致一半屏幕保持空白。
纵向 viewController 之后的横向 presentModalViewController:模态视图也未正确呈现。
已经提出了一组不同的解决方案,其中一些包括通过 CoreGraphics 完全自定义的动画,而另一些则建立在从主 nib 加载的第一个视图控制器始终显示正确的观察上。
我花了大量时间调查这个问题,最终找到了一个解决方案,它不仅是部分解决方案,而且应该在所有这些情况下都有效。我打算通过这篇 CW 帖子为其他在横向模式下遇到 UIViewControllers 问题的人提供一种常见问题解答。
请提供反馈并通过合并任何相关观察来帮助提高这篇文章的质量。如果您知道,请随时编辑和发布其他/更好的答案。