无论应用程序支持的界面方向如何,为什么UIWindow的界限始终处于纵向状态?

时间:2014-09-15 19:04:09

标签: ios orientation ios8

为什么UIWindow的界限始终处于纵向状态,无论应用程序支持的界面方向如何?这在iOS 8中有所改变。

1 个答案:

答案 0 :(得分:3)

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

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

要同时支持iOS7和iOS8,请根据方向保留用于确定宽度和高度的逻辑,并在iOS8上伪造窗口的方向为肖像。


在内部会发生什么,当窗口具有根视图控制器时,系统根据根视图控制器的视图变换调整窗口大小。如果没有根视图控制器,则坐标系统保持不变。