【发布时间】:2011-02-26 13:21:38
【问题描述】:
关于如何实现具有适当处理横向/纵向模式自动旋转的 iPhone 应用程序,这里存在很多困惑和一组相应的问题。当需要以横向模式启动时,实现这样的应用程序尤其困难。观察到的最常见的效果是屏幕布局混乱以及触摸不再被识别的区域。
简单搜索标记为 iphone 和 landscape 的问题会发现这些问题,这些问题在某些情况下会发生:
Landscape only iPhone app with multiple nibs: 应用程序以横向模式启动,第一个 nib 的视图呈现正常,从不同 nib 加载的所有视图都无法正确显示。
Iphone 横向模式在加载新控制器时切换到纵向模式: 不言自明
iPhone: In landscape-only, after first addSubview, UITableViewController doesn’t rotate properly: 同上问题。
iPhone Landscape-Only Utility-Template Application: 布局错误,控制器似乎无法识别视图应该旋转,但在横向模式下显示剪切的纵向视图,导致一半屏幕保持空白。
presentModalViewController in landscape after portrait viewController:模态视图也没有正确渲染。
已经提出了一组不同的解决方案,其中一些包括通过 CoreGraphics 完全自定义的动画,而另一些则基于从主 nib 加载的第一个视图控制器始终显示正确的观察结果。
我花费了大量时间调查这个问题,最终找到了一个解决方案,它不仅是部分解决方案,而且在所有这些情况下都应该有效。我打算通过这篇 CW 帖子为其他在横向模式下遇到 UIViewControllers 问题的人提供一种常见问题解答。
请提供反馈并通过整合任何相关观察来帮助提高这篇帖子的质量。如果您知道任何答案,请随时编辑和发布其他/更好的答案。
【问题讨论】:
-
tabbar controller in landscape mode - 不确定这是否是另一个经常问的问题,但如果它是上面列表的一部分,它肯定会为我节省几个小时。
标签: iphone uiviewcontroller orientation landscape