为什么无论应用程序支持的界面方向如何,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/