ios - 为什么无论应用程序支持的界面方向如何,UIWindow 的边界总是纵向的?

标签 ios orientation ios8

为什么无论应用程序支持的界面方向如何,UIWindow 的边界总是纵向的?这在 iOS 8 中是否发生了变化。

最佳答案

iOS8 SDK 编译的应用程序的窗口坐标系已更改。获取边界现在将以 View 坐标而不是屏幕坐标返回窗口的边界。因此,您不应根据当前方向执行任何校正。这同样适用于在通知中检索到的键盘框架。

因此,横向窗口现在将显示为 {0, 0, 480, 320},而不是 {0, 0, 320, 480}。

要同时支持 iOS7 和 iOS8,请保留根据方向确定宽度和高度的逻辑,如果在 iOS8 上,则将窗口的方向伪装为纵向。

在内部会发生什么,当一个窗口有一个 Root View Controller 时,系统会根据 Root View Controller 的 View 变换来调整窗口的大小。如果没有 Root View Controller ,则坐标系保持不变。

关于ios - 为什么无论应用程序支持的界面方向如何,UIWindow 的边界总是纵向的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25855070/

相关文章:

ios - 如何仅在第一个 View 中隐藏导航栏

ios - 分组的 UITableView 粘性页眉/页 footer 分

iOS : How to properly use Size Classes (or other solution) to have different portrait and landscape layouts?

ios - iOS 8 的基本身份验证失败

ios - 在适用于 iOS 的 SceneKit 中更改 SCNSphere 的 View 侧

iphone - 无法让 setNeedsDisplay 无法使用我的自定义 View 来显示更改

ios - 媒体查询在 iOS 10 中不起作用

xamarin - Xamarin.Forms UWP-如何将应用程序锁定为横向

ios - OverCurrentContext 防止方向改变

ios - cordova 2.9.x iOS 8 用户代理错误