为什么UIWindow的界限始终处于纵向状态,无论应用程序支持的界面方向如何?这在iOS 8中有所改变。
答案 0 :(得分:3)
iOS8 SDK编译应用程序的窗口坐标系已更改。获取边界现在将返回视图坐标中窗口的边界而不是屏幕坐标。因此,您不应根据当前方向执行任何更正。这同样适用于在通知中检索的键盘框架。
因此,横向窗口现在将显示为{0,0,480,320},而不是{0,0,320,480}。
要同时支持iOS7和iOS8,请根据方向保留用于确定宽度和高度的逻辑,并在iOS8上伪造窗口的方向为肖像。
在内部会发生什么,当窗口具有根视图控制器时,系统根据根视图控制器的视图变换调整窗口大小。如果没有根视图控制器,则坐标系统保持不变。